Sesión 2 - Taller de electrónica creativa

Anuncio
Introducción a
ARDUINO.
J. Carlos Ferrer Hernández
Universidad de Cádiz
HTTP://www.electronicacreativauca.tk
http://www.facebook.com/UCACrealab
http://www.uca.es/grupos-inv/TEP150
Hello World!!
Encender un Led con Arduino(blink)
●
Programación
Estructura del código
●
Variables globales y librerías
●
Setup: donde inicializamos y configuramos todo
●
Loop Principal:bucle principal donde están todas las acciones
●
(Funciones) opcional
Programación
Crear Programa
●
Diagrama de flujo: Representación gráfica del algoritmo del
software.
Proceso
●
condición
contador
bloque
http://www.yworks.com/en/products_yed_about.html
Programación
Ejercicios diagramas de flujo
●
Encender un Led
●
Encender un Led con 5 parpadeos
●
Encender un led si se aprieta un botón
Arduino
Características Técnicas
●
Basada en la familia ATMEGA
–
Arduino UNO
14 I/O Digitales
6 I/O analógicas
6 PWM
–
Arduino MEGA
54 I/O Digitales
16 I/O analógicas
15 PWM
Micro controlador
PLACA ARDUINO
Programación
Relación entre señal electrónica digital y sistema binario
●
Las señales digitales tienen dos estados posibles:
●
Alto = 1= verdad= 5v
●
Bajo= 0= Falso= 0v
Programación
Crear Programa
●
Esquema de bloques Hardware,es el primer esquema que
debemos realizar en el que reflejaremos las entradas y salidas
de nuestro proyecto.(los podemos generar con fritzing)
Hello World!!
Encender un Led con Arduino(blink)
●
void setup() {}
●
void loop() {}
●
pinMode (Pin, OUTPUT/INPUT);
●
digitalWrite(Pin, HIGH/LOW);
●
delay(número de mseg);
Hello World!!
Encender un Led con Arduino(blink)
int led = 13;
////////////////////////////// configurar pin 13 como salida ///////////////////////////////////////////
void setup() {
pinMode(led, OUTPUT);
}
///////////////////////////// Bucle principal ////////////////////////////////////////////
void loop() {
digitalWrite(led, HIGH); // escribir uno lógico(5v)
delay(1000);
// esperar 1 seg
digitalWrite(led, LOW); // escribir cero lógico (0v)
delay(1000);
}
// Esperar 1 segundo
Practica 2
Lectura digital
Encender un led cuando presionamos un botón y apagarlo cuando el botón este relajado
Practica 2
Lectura digital
●
if (condición) {
Código;
}
else {
Código;
}
●
digitalRead();
variable = digitalRead(Pin);
Practica 2
Lectura digital
const int buttonPin = 2;
// the number of the pushbutton pin
const int ledPin = 13;
// the number of the LED pin
int buttonState = 0;
// variable for reading the pushbutton status
void setup() {
// el pin del led es salida
pinMode(ledPin, OUTPUT);
// el pin del boton es entrada
pinMode(buttonPin, INPUT);
Practica 2
void loop(){
// leer el botón
buttonState = digitalRead(buttonPin);
// si vale 1, enciende
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
// si vale 0,apaga
else {
digitalWrite(ledPin, LOW);
}
Practica 3
Lectura analógica
leer el valor de un potenciómetro e imprimirlo en el monitor serie
Practica4
Lectura analógica
●
●
●
analogRead(pin);
map(valor entrada min,valor entrada max,valor salida
min,valor salida max);
constrain(variable,minimo,maximo);
Practica4
●
Monitor Serie
●
Serial.begin(9600);
●
Serial.print(“lo que sea” 'c' valor);
Practica4
Lectura analógica
const int analogInPin = A0;
const int analogOutPin = 9;
int sensorValue = 0;
// variable donde guardamos el valor leído por el potenciómetro
int outputValue = 0;
// variable donde guardamos el valor que le vamos a escribir al PWM del Led
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}
Practica4
Lectura analógica
void loop() {
//leer el valor del portenciometro
sensorValue = analogRead(analogInPin);
// cambiarle el rango dentro de la variable de salida
outputValue = map(sensorValue, 0, 1023, 0, 255);
// escribir el PWM
analogWrite(analogOutPin, outputValue);
// pimprimir los resultados en el monitor serie:
Serial.print("sensor = " );
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
// esperar 10 millis
delay(10);
}
para estabilizar el conversor analogico digital
Practica 4
PWM
Encender y apagar un led regulando la intensidad poco a poco
Practica3
PWM
●
for(variable =x; condición; actualizacion de variable){
Código;
}
●
analogWrite(pin,valor);
Practica3
PWM
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// fade the LED off to on:
for (int brightness = 0; brightness < 255; brightness++) {
analogWrite(ledPin, brightness);
delay(2);
}
Practica3
PWM
// fade the LED on to off:
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(ledPin, brightness);
delay(2);
}
// pausa
delay(100);
}
Ejercicio 1
El semáforo
●
Crea un semáforo que este en verde,y que cuando pulsen un
botón se genere el típico patrón de semáforo( ámbar
parpadeando,rojo,y verde de nuevo)
●
Modifica el tiempo de espera y la velocidad del
parpadeo,utilizando un control analógico
(diagrama de bloques,diagrama de flujo y código)
●
Modifica el ejercicio como te parezca oportuno
Descargar