miércoles, 5 de abril de 2017

Sesión 3

05 de abril - 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 3:
  1. Potenciómetro.
  2. Parpadeo de un led con un potenciómetro.
  3. Encendido de varios LED con potenciómetro.
  4. Control de la intensidad de un LED con un potenciómetro.
  5. Sensor de lluvia.
CÓDIGOS Y ESQUEMAS:

1. Potenciómetro.

Código:
const int analogPin = A0;
int value;      //variable que almacena la lectura analógica raw
int position;   //posicion del potenciometro en tanto por ciento
void setup() {
Serial.begin(9600);
}
void loop() {
value = analogRead(analogPin); // realizar la lectura analógica raw
Serial.println(value);
position = map(value, 0, 1023, 0, 100);  // convertir a porcentaje
//...hacer lo que se quiera, con el valor de posición medido
delay(1000);
}


arduino-potenciometro-montaje

2. Parpadeo de un led con un potenciómetro.

Código:


int pinPot = A0;  // pin en donde se usará el potenciómetro

int pinLed = 9;  // pin en donde se utilizará el diodo LED

int valorPot;  // Variable para el valor del potenciómetro

int parpadeo;  // Función del map

void setup() { // aquí se pondrá el código que solo se correrá una vez al iniciar el programa:
 

  pinMode(pinLed, OUTPUT);  // Se indica que el pin asignado como pinLed, será un pin de salida.

}

void loop() {  // aqui se pondra el código loop que se correrá repetidamente:
 

valorPot = analogRead(pinPot); // Lee el valor del pot y lo guarda en la variable valorPot

parpadeo = map(valorPot, 0, 1023, 100, 500);  // función de mapeo que definirá el delay

digitalWrite(pinLed, HIGH); // Función que encenderá el diodo LED

  delay(parpadeo);

digitalWrite(pinLed, LOW);  // Función que apagará el diodo LED

  delay(parpadeo);

}

My Unicorn


3. Encendido de varios LED con potenciómetro.

Código:
int led1=5;
int led2=6;
int led3=9;
int led4=10;
int led5=11;
int val;

void setup(){
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
}
void loop(){
val=analogRead(A0); //repartiré los 1023 valores posibles en 5 tramos
if(val>=0 && val<204) {
digitalWrite(led1,HIGH); digitalWrite(led2,LOW);
digitalWrite(led3,LOW); digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
}
if(val>=204 && val<408) {
digitalWrite(led1,LOW); digitalWrite(led2,HIGH);
digitalWrite(led3,LOW); digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
}
if(val>=408 && val<612) {
digitalWrite(led1,LOW); digitalWrite(led2,LOW);
digitalWrite(led3,HIGH); digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
}
if(val>=612 && val<816) {
digitalWrite(led1,LOW); digitalWrite(led2,LOW);
digitalWrite(led3,LOW); digitalWrite(led4,HIGH);
digitalWrite(led5,LOW);
}
if(val>=816 && val<1023) {
digitalWrite(led1,LOW); digitalWrite(led2,LOW);
digitalWrite(led3,LOW); digitalWrite(led4,LOW);
digitalWrite(led5,HIGH);
}
}

4. Control de la intensidad de un LED con un potenciómetro.

Código:
/* Práctica 3 Voltajes analogicos y PWM
 Ajustar el brillo de un led dependiendo 
 del voltaje de un potenciometro.*/

const int led =3;  // led conectado al pin 3
const int pot =0; // el pot esta conectado al pin A0

int brillo;  //variable para el brillo

void setup ()  {
  pinMode (led, OUTPUT);  // declaramos el led como salida 
  /* los pin analogicos se declaran como entrada automaticamente */
}

void loop (){
  /*leemos el valor del potenciometro divididos entre 4 ya que
   solo se pueden usar valores entre 0 y 255 en analog Write  */
  brillo = analogRead (pot) / 4; 
  /*analogWrite recibe dos valores,el pin a usar y la intensidad del voltaje
   los valores de voltaje van de 0 a 255*/
  analogWrite(led, brillo);
}

Diagrama de conexión de la práctica realizado en Fritzing

5. Sensor de lluvia.

Código:

void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);

Serial.println(sensorValue);
delay(200);
}
arduino-placa-sensor






No hay comentarios:

Publicar un comentario

Sesión 8