Taller Arduino
Taller Arduino
fabricación digital:
Sistemas Electrónicos
Prototipado Electrónico:
Sistemas Embebidos y Microcontroladores
• Interactivo
• Sensores
• Inteligente
• Manejo de Información
• Funcional
• Almacenamiento
de datos
• Contextual
Diseño de un Dispositivo Inteligente
void setup()
{
pinMode(buttonP, INPUT);
pinMode(ledP, OUTPUT);
}
void loop()
{
int buttonState = digitalRead(buttonP);
if (buttonState == HIGH)
digitalWrite(ledP, HIGH);
else
digitalWrite(ledP, LOW);
}
Funciones setup() y loop ()
• Ciclo while
• while(condicion){
….Codigo….
}
• Ciclo for()
• for(valor inicial;valor final;incremento) {
….Codigo….
}
Entrada/salida digital
Resistencia
limitadora
de corriente
Ejemplo:
Red LED. Vf = Aproximadamente 2.2V.
Vr = 5-2.2 = 2.8V.
Iled = 2.8/330 = 8.4848... ~+ 8.5 mA.
Pines Arduino Uno - Alias
• LED_BUILTIN
User LED
• delay(tiempo)
• Detiene la ejecución del programa por la cantidad de tiempo
especificada (en milisegundos)
• delayMicroseconds(tiempo)
• Igual a delay(), pero tiempo se especifica en microsegundos.
• Actualmente preciso sólo para retardos de hasta 16.383 us
• No recomendado para retardos mayores de unos pocos miles de
microsegundos
Actividad 3
• millis()
• Retorna el tiempo transcurrido (en milisegundos) desde el inicio del
programa
• Utilizar un unsigned long
• Utiliza un timer del MCU para llevar la cuenta independientemente del
programa. Se resetea cada aproximadamente 50 días.
• Utilizado para tareas de tiempo real
• micros()
• Equivalente a millis(), en microsegundos.
• Se resetea cada aproximadamente 70 minutos
• Resolución de 4-8 us.
Actividad 4
• bitRead(entero, pos)
• Retorna el valor del bit en la posición “pos” del valor “entero”
• bitWrite(entero, pos, valor)
• Escribe el valor “valor” en el bit “pos” de la variable “entero”
• bitSet(entero, pos)
• Fija en 1 el bit “pos” de la variable “entero”
• bitClear(entero, pos)
• Fija en 0 el bit “pos” de la variable “entero”
• bit(n)
• Calcula el valor 2n
Visor de 7 segmentos – Arreglo de LEDs
Actividad 6
• analogRead(canal)
• Retorna el valor digital del valor análogo en el pin “canal”. Pueden usarse
alias A0, A1, A2, A3, etc.
Actividad 6a
• noInterrupts()
• Deshabilita interrupciones
• interrupts()
• Vuelve a habilitar interrupciones
• Estas funciones permiten delimitar una sección del
código principal (de loop) donde se permite que
señales externas interrumpan la ejecución del
programa
Interrupciones en Arduino
• detachInterrupt(interrupt)
• Desactiva una interrupción específica
Notas
• Serial.available()
• Indica si hay datos disponibles en el buffer de recepción (el buffer almacena hasta
64 bytes)
• Ej. if (Serial.available()) { …
• Serial.read()
• Extrae y retorna el primer byte del buffer de recepción, si éste tiene datos.
• Ej. Dato = Serial.read();
• Serial.write(dato)
• Escribe información binaria en la puerta serial.
• Dato puede ser un byte, un string, o un arreglo de bytes
• Ej. Serial.write(45);
• Ej. Serial.write(“Hola mundo”);
• Ej. char vec[10]; ….; Serial.write (vec, 7);
Sensor ADXL335 - Acelerómetro
Permite
reducir los pines
de salidas
digitales
necesarios para
visualizar
Actividad 8