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:
- Potenciómetro.
- Parpadeo de un led con un potenciómetro.
- Encendido de varios LED con potenciómetro.
- Control de la intensidad de un LED con un potenciómetro.
- Sensor de lluvia.
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);
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
position = map(value, 0, 1023, 0, 100); // convertir a porcentaje
//...hacer lo que se quiera, con el valor de posición medido
delay(1000);
}
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);
}
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); }5. Sensor de lluvia.
Código:
void setup() {void loop() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(200);
}
No hay comentarios:
Publicar un comentario