martes, 16 de mayo de 2017

Sesión 6

17 de mayo - 15:45-18:45
Hola a todos:

En esta sesión vamos a seguir con estructuras de programación como el condicional, utilizar salidas y entradas analógicas.

PROYECTOS DE LA SESIÓN 6:

  1. Sensor de temperatura
  2. Sensor de temperatura con LED
  3. Sensor de temperatura con LED y altavoz
  4. Motor sg90 (girarlo de 0º a 180º)
  5. Motor sg90 (girarlo de grado en grado)
  6. Motor sg90 y sensor de ultrasonidos (puerta que se abre al detectar presencia)
CÓDIGOS Y ESQUEMAS:

1. Sensor de temperatura LM35

CÓDIGO

const int sensorPin= A0;
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  int value = analogRead(sensorPin);
  float millivolts = (value / 1023.0) * 5000;
  float celsius = millivolts / 10;
  Serial.print(celsius);
  Serial.println(" ºC");
  delay(1000);
}
arduino-LM35-montaje-electrico 
 2. Sensor de temperatura LM35 con LED
Deberás de añadir al termómetro un juego de 3 LED (verde, amarillo y rojo). Utilizarás un condicional que encienda los LED a medida que vaya aumentando la temperatura, de manera que se quede encendida la luz verde para la temperatura ambiente, se encienda, además de la verde, la amarilla si aumenta la temperatura en 5 ºC y se encienda, además de la verde y la amarilla, la roja si aumenta la temperatura otros 5 ºC.

CÓDIGO:

 const int sensorPin= A0;
void setup()
{
  Serial.begin(9600);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
}
void loop()
{
  int value = analogRead(sensorPin);
  float millivolts = (value / 1023.0) * 5000;
  float celsius = millivolts / 10;
  Serial.print(celsius);
  Serial.println(" ºC");
 
   //Introducimos el condicional
  if (celsius<27)
   {  
    digitalWrite(11,HIGH);
   }
  if (celsius>=27 && celsius<30)
  {
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
  }
  if (celsius>=30)
  {
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    digitalWrite(13,HIGH);
  }
  delay(200);

  //Ahora los apagamos todos los LED y empezamos de nuevo.
  digitalWrite(11,LOW);
  digitalWrite(12,LOW);
  digitalWrite(13,LOW);
}


 3. Sensor de temperatura con LED y altavoz
Deberás de añadir al ejercicio anterior, un altavoz que emita un pitido continuo al sobrepasar una temperatura que coincidirá con aquella que encienda el LED rojo.

CÓDIGO:

 const int sensorPin= A0;
int pinzumbador=9;
int frecuencia=220;
void setup()
{
  Serial.begin(9600);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
}
void loop()
{
  int value = analogRead(sensorPin);
  float millivolts = (value / 1023.0) * 5000;
  float celsius = millivolts / 10;
  Serial.print(celsius);
  Serial.println(" ºC");
 
   //Introducimos el condicional
  if (celsius<27)
   {  
    digitalWrite(11,HIGH);

digitalWrite(12,LOW);
digitalWrite(13,LOW); 
noTone(pinzumbador);
  }
  if (celsius>=27 && celsius<30)
  {
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);

digitalWrite(13,LOW);  
noTone(pinzumbador);   }
  if (celsius>=30)
  {
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    digitalWrite(13,HIGH);

tone(pinzumbador,frecuencia);
  }
  delay(200);


}



4. Motor sg90 (girarlo de 0º a 180º)

CÓDIGO:
// Incluímos la librería para poder controlar el servo
#include <Servo.h>
// Declaramos la variable para controlar el servo
Servo servoMotor;
void setup() {
  // Iniciamos el monitor serie para mostrar el resultado
  Serial.begin(9600);
  // Iniciamos el servo para que empiece a trabajar con el pin 9
  servoMotor.attach(9);
}
void loop() {
  
  // Desplazamos a la posición 0º
  servoMotor.write(0);
  // Esperamos 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 90º
  servoMotor.write(90);
  // Esperamos 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 180º
  servoMotor.write(180);
  // Esperamos 1 segundo
  delay(1000);
}
 Conexion servomotor con Arduino

 5. Motor sg90 (girarlo de grado en grado)

CÓDIGO:
// Incluímos la librería para poder controlar el servo
#include <Servo.h>
// Declaramos la variable para controlar el servo
Servo servoMotor;
void setup() {
  // Iniciamos el monitor serie para mostrar el resultado
  Serial.begin(9600);
  // Iniciamos el servo para que empiece a trabajar con el pin 9
  servoMotor.attach(9);
  // Inicializamos al ángulo 0 el servomotor
  servoMotor.write(0);
}
void loop() {
  // Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo
  // Para el sentido positivo
  for (int i = 0; i <= 180; i++)
  {
    // Desplazamos al ángulo correspondiente
    servoMotor.write(i);
    // Hacemos una pausa de 25ms
    delay(25);
  }
  // Para el sentido negativo
  for (int i = 179; i > 0; i--)
  {
    // Desplazamos al ángulo correspondiente
    servoMotor.write(i);
    // Hacemos una pausa de 25ms
    delay(25);
  }
}

6. Motor sg90 y sensor de ultrasonidos (puerta que se abre al detectar presencia)
Deberás de construir una compuerta que se abra o se cierre en función de si detecta la presencia de una persona o coche.

No hay comentarios:

Publicar un comentario

Sesión 8