INTRODUCCIÓN
ARDUINO Ricardo Vega M. rvegamora@uc.cl @ricardov_cl www.ricardov.cl
v2 Nov 2021 (v1 Octubre 2019) Creative Commons – Attribution - NonCommercial - NoDerivatives 4.0 International
DESCARGAR
https://shortly.cc/VPvmC pot_arduino pot_processing1_simple
https://drive.google.com/drive/folders/1gC-Dbn4L4dsy4sj06auC16WfmZafAQta?usp=sharing
SEÑALES
https://www.youtube.com/watch?v=c-h-cSNPfzE
QUÉ ES ARDUINO
Es una plataforma para el desarrollo de prototipos de electrónica basado en código abierto. De muy fácil uso, está pensado para que cualquier persona pueda integrarse al desarrollo de proyectos de electrónica básica.
HARDWARE Y CÓDIGO ABIERTO
VERSIONES: ARDUINO UNO
VERSIONES: ARDUINO MEGA
VERSIONES: ARDUINO MINI
VERSIONES: ARDUINO SHIELDS
VERSIONES: ARDUINO FLORA
INTEGRACIÓN ARDUINO Y PROCESSING
PLATAFORMAS PARA APRENDER Y COMPARTIR: INSTRUCTABLES
PLATAFORMAS PARA APRENDER Y COMPARTIR: MAKE MAGAZINE
PLATAFORMAS PARA APRENDER Y COMPRAR: SPARKFUN
PHYSICAL COMPUTING O COMPUTACIÓN FÍSICA
entrada
proceso
salida
Consiste en diseñar sistemas físicos (dispositivos, objetos, entornos…) usando hardware y software para establecer comunicación entre el lo físico y lo virtual. Puede tanto captar información del entorno físico por medio de sensores (luz, humedad, etc), como también actuar en dicho entorno a través de actuadores (servomotores, relés, parlantes, etc). Se sirven de datos de entrada, un proceso, y una salida.
SENSOR
Dispositivo diseñado para detectar variaciones en las magnitudes del entorno físico, sean mecánicas, químicas, lumínicas, etc. Estas variaciones son transformadas en variables eléctricas.
ACTUADOR
Dispositivo capaz de transformar energía de algún tipo para activar un proceso que permita generar un efecto sobre elemento físico.
INTERFASE DE ARDUINO
EJEMPLOS INTEGRADOS
EJERCICIOS
www.tinkercad.com
fritzing.org
Pueden prototipar en estas plataformas:
EJERCICIO 1: LED DE ARDUINO // PARPADEO LED // https://www.youtube.com/watch?v=bwkHUXa9HWM void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
EJERCICIO 2: BOTÓN // BOTONES // https://www.youtube.com/watch?v=7ob8CDEmExs int estado = 0; //guarda estado de btn int estadoAnterior = 0; // estado anterior del btn int salida = 0; // 0 apagado 1 prendido void setup() { pinMode(8, INPUT); pinMode(4, OUTPUT); }
// btn entrada // led salida
void loop() { estado = digitalRead(8); // leer estado btn if( (estado==HIGH) && (estadoAnterior==LOW) ) { salida = 1 - salida; delay(20); } estadoAnterior = estado; if(salida == 1) { digitalWrite(4, HIGH); }else{ digitalWrite(4, LOW ); } }
EJERCICIO 3: POTENCIÓMETRO // POTENCIOMETRO // https://youtu.be/2RhzXuETnwg const int led = 3; const int pot= 0; int brillo;
// led en pin 3 // pot en pin 0 //
void setup() { pinMode(led, OUTPUT); // led salida // pins analogicos se declaran como entrada automaticamente Serial.begin(9600); // para mostrar valores en monitor serie } void loop() { brillo = analogRead(pot)/4; analogWrite(led, brillo ); Serial.println(brillo); }
// leer valor pot y /4 // valor pot a brillo
EJERCICIO 4: POTENCIÓMETRO Y DATOS A PROCESSING Código de Arduino int Sensor = A0; //selecciona pin de entrada de datos void setup() { pinMode(Sensor, INPUT); //sensor tipo input Serial.begin(9600); } void loop() { int Valor = analogRead(Sensor); //datos en variable Serial.println(Valor); /datos en puerto serial delay(500); //tiempo de respuesta 1000=1seg }
Código de Processing import processing.serial.*; //importa libreria puerto serial Serial MiSerial; int Valor = 0; void setup() { //genera parametros generales size(800, 600); printArray(Serial.list()); //muestra datos en consola //puerto a ser leido x processing MiSerial = new Serial(this, "/dev/tty.usbmodem1421", 9600); } void draw() { //repite tareas varias veces x segundo background(255); //color del fondo // datos sensor convertidos a valores para color y altura int ValorRojo = int(map(Valor, 0, 1023, 0, 255)); int ValorAzul = int(map(Valor, 0, 1023, 255, 0)); int altura = int(map(Valor, 0, 1023, 0, -500)); fill( ValorRojo, ValorAzul-2, 0 ); //color barra rect(100, height-100, 100, altura ); //dibuja barra fill(0); textSize(12); text( "Datos:" + ValorRojo, 20, 20 ); //valor en pantalla //muestra valor en consola if (MiSerial.available() > 0) { String Texto = MiSerial.readStringUntil('\n'); if (Texto != null) { Valor = int(trim(Texto)); } println(Valor); } } // cierre draw
Curso introductorio gratuito Electrones en Acción: Electrónica y Arduinos para tus propios Inventos. Angel Abusleme (Ing. UC) https://www.coursera.org/learn/electrones-en-accion?
Gracias!