Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arduino
Es una plataforma de hardware libre basada en
una placa con un micro controlador de la familia ATMEL
(ATmega2560) y un entorno de desarrollo, diseñada para
facilitar el uso de la electrónica en proyectos
multidisciplinares
Robótica Industrial
Arduino
Robótica Industrial
Arduino
Robótica Industrial
Robótica Industrial
void setup()
{
/ / inicializar los modos de trabajo de los pines, o el
puerto serie;
}
void loop()
{
/ / programa que se ejecutará cíclicamente;
}
Robótica Industrial
Estructura del sketch
Robótica Industrial
Tipo de variables
byte (0 a 255)
int ( -32,768 a 32,767)
long ( -2,147,483,648 a 2,147,483,647)
digitalWrite(pin, value);
digitalWrite(10,HIGH);
Leyendo terminal digital
digitalRead(Pin);
Demorar o retrasar (delay)
delay(ms);
Práctica 1:
“HOLA MUNDO”
Instrucciones:
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
delay(2000);
digitalWrite(13, LOW);
delay(2000);
}
Código
#define Led 13
void setup()
{
pinMode(Led, OUTPUT);
}
void loop()
{
digitalWrite(Led, HIGH);
delay(2000);
digitalWrite(Led, LOW);
delay(2000);
}
Código
const byte Led=13;
void setup()
{
pinMode(Led, OUTPUT);
}
void loop()
{
digitalWrite(Led, HIGH);
delay(2000);
digitalWrite(Led, LOW);
delay(2000);
}
Práctica 2:
“Control de 2 led’s”
Instrucciones:
int miEnts[6];
int miPins[] = {2, 4, 8, 3, 6};
int miVals[5] = {2, 4, -8, 3, 2};
char mensaje[6] = "hello";
0 1 2 3 4
Robótica Industrial
Aritmética
Led[0] 13
Led[1] 12
Led[2] 11
Led[3] 10
Led[4] 9
Estructura FOR
x = 0:
pinMode(Led[0], OUTPUT);
x = 1:
pinMode(Led[1], OUTPUT);
for (byte x = 0; x < 5; x++) {
x = 2: pinMode(Led[x], OUTPUT);
pinMode(Led[2], OUTPUT); }
x = 3:
pinMode(Led[3], OUTPUT);
x = 4:
pinMode(Led[4], OUTPUT);
x = 5: (NO CUMPLE)
Estructura FOR
pinMode(13, OUTPUT);
pinMode(12, OUTPUT); for (byte x = 13; x > 8; x--)
pinMode(11, OUTPUT); {
pinMode(10, OUTPUT); pinMode(x, OUTPUT);
pinMode(9, OUTPUT); }
Estructura FOR
x = 13:
pinMode(13, OUTPUT);
x = 12:
pinMode(12, OUTPUT);
for (byte x = 13; x > 8; x--)
x = 11: {
pinMode(11, OUTPUT); pinMode(x, OUTPUT);
}
x = 10:
pinMode(10, OUTPUT);
x = 9:
pinMode(9, OUTPUT);
x = 8: (NO CUMPLE)
Práctica 7:
“Control de Led´s simulando el
comportamiento del auto
fantástico ”
Instrucciones:
Logical OR
if ( x > 0 || y > 0 ) // cierto si cualquiera de las expresiones
es cierta
Logical NOT
if ( !x > 0 ) // cierto solo si la expresión es falsa
Estructura CASE
Al igual que las declaraciones if, el switch ... case controla el flujo de
los programas, permitiendo a los programadores especificar
diferentes códigos que deben ejecutarse en diversas condiciones. En
particular, una instrucción switch compara el valor de una variable
con los valores especificados en las sentencias case. Cuando se
encuentra una instrucción case cuyo valor coincide con el de la
variable, se ejecuta el código en esa instrucción case.
switch (var) {
case label:
// statements
break;
case label:
// statements
break;
default:
// statements
break;
}
Puerto serie
Serial.begin(tasa)
void setup() {
Serial.begin(9600); // abre el Puerto serie
} // configurando la velocidad en 9600 bps
while (expresión) {
// Código
}
int var = 0;
while(var < 20) {
Serial.println(var);
var++;
}
Práctica 11:
“Control de encendido y parpadeo
de Led’s utilizando el teclado”
Instrucciones:
do {
// Código
} while (Condición de prueba);
Robótica Industrial
Botón o pulsador
analogWrite(pin, value)
Sirve para escribir un pseudo-valor analógico utilizando el
procedimiento de modulación por ancho de pulso (PWM) a
uno de los pines de Arduino marcados como PWM. El valor
que se puede enviar a estos pines de salida analógica
puede darse en forma de variable o constante, pero
siempre con un margen de 0-255.
analogRead(pin)
Función map()
Reasigna un número desde un rango a otro. Esto es,
un valor de fromLow es asignado a toLow, un valor
de fromHigh a toHigh, valores intermedios del primer
rango a valores intermedios del segundo rango.
1023
0 1023
0
Práctica 18:
“Control digital de cinco LED’s
utilizando un potenciómetro”
Instrucciones:
1023
0 1023
0
Práctica 19:
“Control analógico de cinco LED’s
utilizando un potenciómetro”
Instrucciones:
pulseIn()
Lee un pulso (HIGH o LOW) en un pin. Por ejemplo, si
el valor es alto, pulseIn () espera a que el pin pase a
nivel HIGH, se inicia el tiempo, espera a que el pin
pase a nivel LOW y para el cronómetro. Devuelve la
longitud del impulso en microsegundos o 0 si no se
recibe un pulso completo dentro del tiempo de espera.
La temporización de esta función funciona en pulsos
de 10 microsegundos a 3 minutos de duración.
Sintaxis:
pulseIn (pin, value)
Ejemplo:
pulseIn(pinEco, HIGH);
Sensor ultrasónico
Práctica 20:
“Determinar la distancia de un objeto
con un sensor ultrasónico”
Instrucciones:
byte Pindisparo=6;
byte Pineco=5;
long tiempoMs;
int dist;
void setup() {
Serial.begin(9600);
pinMode(Pindisparo, OUTPUT);
pinMode(Pineco, INPUT);
}
Sketch:
void loop() {
iniciarDisparo ();
tiempoMs = pulseIn(Pineco, HIGH);
dist = tiempoMs*0.01715;
if (dist>=10 && dist<=300) {
Serial.println("Distancia: " + String(dist) + " cm");
}
else {
Serial.println("FUERA DE RANGO");
}
delay(500);
}
Sketch:
void iniciarDisparo() {
digitalWrite(Pindisparo, LOW);
delayMicroseconds(2);
digitalWrite(Pindisparo, HIGH);
delayMicroseconds(10);
digitalWrite(Pindisparo, LOW);
}
Práctica 21:
“Sistema de alarma con un sensor
ultrasónico”
Instrucciones:
void setup() {
delay(1000);
Serial.begin(9600);
sensors.begin();
}
Sensor temperatura Ds18b20
void loop() {
sensors.requestTemperatures();
Serial.println(“TEMPERATURA MEDIDA”);
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" grados Centigrados");
Serial.print(sensors.getTempFByIndex(0));
Serial.println(" grados Fahrenheit");
delay(1000);
}
Práctica 25:
“Sistema de alarma con un sensor de
temperatura”
Instrucciones: