ARDUINO ♥ C++ Instructor: Gadiel Ortez

Slides:



Advertisements
Presentaciones similares
PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS CONTROL DE BARRERA DE PARKING
Advertisements

Physical Computing Clase 4. Memoria y Variables decimal, binario, hexadecimal Ver anexo 4.1. por favor.
INTRODUCCIÓN A ARDUINO
Introducción a la robótica educativa con Arduino
Conceptos Básicos de Programación. Put a pin into input mode Loop Check if the pin is 0 or 5 volts If the pin has 5 volts Do something End if End Loop.
Introducción al lenguaje PROCESSING para ARDUINO
ESPECIFICACIONES DE OPERACIÓN DEL MICROCONTROLADOR
La compuerta de la tolva SISTEMA COMPUERTA (motor)  El sistema genera un flujo digital de datos hacia el dispositivo  Genera un conjunto de datos en.
El Hardware El Software La Comunidad  Software Libre  Hardware Libre  Puerto USB  Fácil de usar  Precio reducido  Completamente independiente 
Practica 1 Componentes del Robot. Sensor Ultrasónico El Sensor Ultrasónico de Distancia PING (o "PING)))" como lo denomina el fabricante) tiene una interfaz.
República Bolivariana de Venezuela La Universidad del Zulia Facultad de Ingeniería Núcleo Maracaibo Ciclo Básico Departamento de Física Asignatura: Laboratorio.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
LENGUAJE DE PROGRAMACIÓN DE ARDUINO. LENGUAJE DE LENGUAJE DE PROGRAMACIÓN.
Sensores Ultrasonido. Son importantes en robótica, se usan para calcular distancias.
ARDUINO INTRODUCCIÓN Y PROGRAMACIÓN. Podemos tener Señales analógicas y digitales. INTRODUCCIÓN.
ARDUINO El proyecto Arduino: Recordando… - Pines de entrada
INTRODUCCIÓN A ARDUINO
TALLER DE ARDUINO.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Control, adquisición y monitoreo con Arduino y Visual Basic .net
LENGUAJE DE PROGRAMACIÓN DE ARDUINO
Control, adquisición y monitoreo con Arduino y Visual Basic .net
TERMINOLOGÍA BÁSICA Informática: conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información,
SISTEMAS DE AUTOMATIZACIÓN Y CONTROL ORIENTADO AL CONOCIMIENTO Y APLICACIÓN DE LOS SISTEMAS EMBEBIDOS SESION 04 José Luis Albites Sanabria MSc. Biomedical.
Brazo robótico Un brazo robótico es un tipo de brazo mecánico, normalmente programable, con funciones parecidas a las de un brazo humano; este puede ser.
Tecnologías avanzadas para la enseñanza de la Física
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
CLASE X.
SENSOR ULTRASONIDOS O módulo ultrasónico modelo HC-SR04.
SENSOR ULTRASONIDOS O módulo ultrasónico modelo HC-SR04.
3.0 TALLER DE ARDUINO PRESENTACIÓN PARA ALUMNOS DE CUARTO CURSO DE EDUCACIÓN SECUNDARIA OBLIGATORIA.
PROGRAMACIÓN DE SERVOS CON ARDUINO
Capitulo I Introducción
ROBOT SIGUE LÍNEAS EVITA OBSTÁCULOS PARA ENSEÑANZA DOCENTE
24. Relevador de sobre excitación
Leccion 5: Escogiendo un Tipo de Variable
ARDUINO Qué es y por qué usarlo * El proyecto Arduino:
CLASE IV.
Hardware, software, y periféricos
Unidad 3. Introducción a la programación
SISTEMA DIGITAL Es una combinación de dispositivos diseñados para manipular cantidades físicas o información que estén representadas en forma digital,
Arduino y raspberry pi-hardware libre para linux y android
MEMORIAS. Alba Lus, Esther Escobar, Laura Hierro, Raquel Fdez.
Instrumentación electrónica
UD1 (PARTE 2: NUMERACIÓN)
Clase 4 8:00 AM Repaso La Programación ¿Qué es Arduino? Tipos de Arduinos 10:00 AM Aprendiendo a programar en Arduino Ejemplos Semillero Robótica I.
SISTEMA BINARIO.
PROCESADOR DIGITAL ESPECIALIZADO
Introducción práctica la uso de la tarjeta Arduino.
¿Qué es Arduino? Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware libre, flexibles y fáciles.
Curso de Ensayos No Destructivos
Primeros pasos con Arduino
Display de cristal liquido 2x16
COFRE CON SISTEMA DE SEGURIDAD BLUETOOTH
Dispositivos Semiconductores
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Luis Brito Nelson Quizhpe
Diapositivas en PowerPoint de la UA: Producción Automatizada
El conector PS/2 o puerto PS/2 toma su nombre de la serie de computadoras IBM Personal System/2 que es creada por IBM en 1987, y empleada para conectar teclados y ratones.
Un simulador​ con prototipo
PROGRAMACIÓN (2).
Capitulo I Introducción
PROYECTO FINAL DE CARRERA PREVIO A LA OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN ELECTRÓNICA TEMA: “IMPLEMENTACIÓN DE UN TABLERO DE ENTRENAMIENTO BASADO EN PLATAFORMA.
Proyecto de Asignación
Eduardo Cruz Pérez.
CONTROL Y ROBÓTICA TECNOLOGÍA 4ºESO. Iniciación a LA ROBÓTICA con La µControladora.
UNIDAD 11: CONTROL DE SERVOMOTORES
INTRODUCCIÓN A LA INFORMÁTICA
ARDUINO ARDUINO El proyecto Arduino: Recordando… - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino.
¿Qué es Arduino?  Plataforma de electrónica abierta.
Transcripción de la presentación:

ARDUINO ♥ C++ Instructor: Gadiel Ortez Lab. Programación II ARDUINO ♥ C++ Instructor: Gadiel Ortez

Que es ARDUINO ? Es una plataforma de código abierto, basada en una placa con un microcontrolador (hardware), un entorno de desarrollo (software), y librerias todo esto diseñado para facilitar el uso de la electrónica en diversos proyectos. Es una pequeña computadora, que realiza tareas especificas.

Hardware Software + Librerías

CARACTERISTICAS HARDWARE ARDUINO UNO 14 pines e/s digital 6 pines PWM 6 e/s analógicas Oscilador de 16 Mhz Conexión USB Fuente alimentación Micro controlador

CARACTERISTICAS

ATMEL : Microcontrolador Atmega 168/328 Microprocesador con una arquitectura RISC de 8 bits

ARDUINO MEGA 2560

Características ARDUINO MEGA

CARACTERISTICAS SOFTWARE IDE de programación Opensource. Lenguajes de programación -Processing/Wiring. -JAVA -C++

Otros Placas y Micro-Controladores Raspberry Pi ARM Easy-PIC Microchip

IDEAS DE PROYECTO!

Estructura de Arduino Un sketch es el nombre que usa Arduino para un programa. Existen dos funciones especiales que son parte de cada sketch de Arduino:  

Electrónica Básica

Resistencia: oposición al flujo de corriente.

Diodo: Componente electrónico que permite el paso de la corriente en un solo sentido. Rectificador LED

Fuente de Voltaje : Suministra voltaje de alimentacion para dispositivos. Pulsador

Protoboard

Mediciones con Multimetro Voltaje: se mide en paralelo al elemento. Corriente: se mide en serie con el elemento.

Representación Numérica Decimal Sistema de numeración que utiliza diez símbolos, 0- 9 para representar determinada cantidad. Base :10 Símbolos: 0,1,2,3,4,5,6,7,8,9 Binaria  Sistema de numeración en el que los números se representan utilizando solamente los símbolos cero y uno (0 y 1). Base: 2 Símbolos: 0 , 1

Conversiones entre sistemas Decimal a Binario 100 ->? 250 ->? Binario a Decimal 10101 ->? 10010101 ->?

TTL (Transistor-Transistor Logic) Estandarización de valores lógicos Es una familia lógica o lo que es lo mismo, una tecnología de construcción de circuitos electrónicos digitales. La tensión nominal de alimentación de los circuitos TTL son 5 V DC. Niveles de voltaje establecidos:

Logica Digital OR AND NOT A B Salida 1

-IDE -Instalación de Drivers -Hola Mundo

HOLA MUNDO ! Led Parpadeante: Conectar un led al pin 13, haciendo se encienda durante 500 ms y se apague durante 100 ms, cíclicamente. Objetivos: Reconocer partes de la placa. Familiarizarse con el entorno de programación. Conocer ordenes como: pinMode,digitalWrite y delay.

Semana Dos

Lenguaje C++

Estructura de Arduino Un sketch es el nombre que usa Arduino para un programa. Existen dos funciones especiales que son parte de cada sketch de Arduino:  

Variables Es una forma de almacenar datos para utilizarla posteriormente. Deben ser declaradas antes de ser utilizadas. Ej.- tipo nombre= valor inicial. Dos tipos : Variables Locales: Se definen dentro de ciclos o funciones. Variables Globales: Se definen al inicio del programa.

Función o metodo: Es un bloque de codigo, constituido por su nombre, tipo y parametros. - tipo nombre(parametros){ //..bloque de codigo } Punto y coma ( ; ) Debe utilizarse al final de cada linea.

Tipos de Datos byte: valor numerico de 8 bits. (0-255) int :almacena numeros sin puntos decimales. (16 bits) long : almacena numeros grandes sin puntos decimales. (32 bits) Char: es un tipo de dato que ocupa un byte de memoria y almacena un valor de carácter. float : almacena numeros con punto flotante. (32 bits) String : almacena cadenas de texto. Arreglos :Coleccion de valores que son accedidos con un indice numerico. Necesita ser declarado y asignarle valores antes de ser utilizado.

Operadores de comparación y Aritméticos == , Igualdad !=, Distinto < , Menor >, Mayor <= , Menor o igual >= , Mayor o igual = , Asignación

Operadores lógicos Operadores lógicos a nivel de bits AND: & OR: | NOT: ! Operadores lógicos a nivel de bits AND: & OR: |

Control de Datos if (condicion) {    // codigo } if (condicion) {    //codigo } else {    // codigo } if (condición) {    //codigo } else if (condición) { //codigo }else{ //codigo }

Ciclos (For y While) for(inicializacion; condicion;incremento){ //codigo } //inicializacion while(condicion){ //codigo //incremento }

Constantes true/false: constantes booleanas que definen niveles lógicos. ( True:1 :: False:0 ) HIGH/LOW: definen los niveles o estados de un pin. HIGH: 1 logico, ON, 5v. LOW: 0 logico,OFF, 0v. INPUT/OUTPUT: definen el modo de un pin Digital como salida o entrada.

Entradas/Salidas Digitales pinMode(pin, modo): para configurar un pin especifico como entrada o salida. INPUT/OUTPUT digitalRead(pin): Lee el estado de un pin digital obteniendo como resultado HIGH o LOW. digitalWrite(pin, valor): Asigna el estado HIGH o LOW a un pin digital especifico.

Tiempo Matematicas min(x,y): calcula el minimo de dos numeros. delay(ms): genera un tiempo de espera. Parametro que recibe es en milisegundos. millis():devuelve el numero de milisegundos desde que la placa arduino empezo a ejecutar el programa. Matematicas min(x,y): calcula el minimo de dos numeros. max(x,y): calcula el maximo de dos numeros.

Memoria Flash: almacena el programa(sketch). SRAM: almacena variables. (Volatil) EEPROM: almacena información a largo plazo. #include <EEPROM.h>

Comunicación SERIAL

Comunicación SERIAL Se utiliza para la comunicación entre la placa Arduino y un ordenador u otros dispositivos. Funciones : Serial.begin(velocidad) : Establece la velocidad de datos en bits por segundo (baudios) para la transmisión de datos en serie. Serial.end(): Desactiva la comunicación serie, permitiendo a los pines RX y TX ser usados como entradas o salidas digitales. Serial.available(): Devuelve el número de bytes (caracteres) disponibles para ser leidos por el puerto serie.

Serial. read() : Lee los datos entrantes del puerto serie Serial.read() : Lee los datos entrantes del puerto serie. Devuelve el primer byte disponible. Serial.parseInt() : devuelve el valor entero mas proximo en un buffer serial de datos. Serial.print(): Imprime los datos al puerto serie como texto ASCII.   Serial.println(): Imprime los datos al puerto serie como texto ASCII , moviendo el cursos una linea abajo. Serial.write() : Escribe datos binarios en el puerto serie. Estos datos se envían como un byte o una serie de bytes. 

Código ASCII: es una representación numérica de un carácter

ASCII

Práctico: Ejemplo Objetivos: Aplicar los conocimientos teoricos adquiridos. Ejemplo 1: Controlar el encendido y apagado de un par de leds utilizando la comunicacion SERIAL. Arduino tiene conectado dos leds, los cuales se controlaran para que solamente un LED oscile a la vez.

Secuencia de Leds Encender y apagar 4 leds secuencialmente. Conectar los leds a los pines digitales 5,6,7 y 8. Objetivos: Aprender a declarar variables. Aprender a declarar una función y llamarla.

Practica1: Semáforo Crear la secuencia de luces de un semáforo convencional utilizando arduino.

Semana Tres

Numeros Aleatorios randomSeed() randomSeed inicializa el generador de números aleatorios. random() genera numeros aleatorios. Ejemplos: random(max) // toma el valor 0 como el minimo random(min, max)

Ejemplo Numeros Aleatorios void setup(){ Serial.begin(9600); randomSeed(analogRead(0)); } void loop() { randNumber = random(300); Serial.println(randNumber); randNumber = random(10, 20); Serial.println(randNumber); delay(50);

Arreglos Hint: * Utilizar ciclos para manipular arreglos Un arreglo es una colección de variables a las que podemos acceder mediante un índice, el cual indica la posición dentro del arreglo. Hint: * Utilizar ciclos para manipular arreglos

Sistema de Control Entradas Salidas Procesamiento µC Memoria

Entradas/Salidas Digitales pinMode(pin, modo): para configurar un pin especifico como entrada o salida. INPUT/OUTPUT digitalRead(pin): Lee el estado de un pin digital obteniendo como resultado HIGH o LOW. digitalWrite(pin, valor): Asigna el estado HIGH o LOW a un pin digital especifico.

Ejemplo Entrada Digital: Monitorear Estado del Boton Este ejemplo nos permite monitorear el estado de un switch estableciendo una comunicacion serial con arduino y la computadora.

int pushButton = 2; void setup() { Serial int pushButton = 2; void setup() {   Serial.begin(9600);   pinMode(pushButton, INPUT); } void loop() {    int buttonState = digitalRead(pushButton);   Serial.println(buttonState);   delay(1);         }

Ejemplo E/S Digital: Secuencia de Leds con Pulsador Encender y apagar 4 leds secuencialmente al accionar un pulsador. El pulsador debe estar conectado al pin 4 y los leds a los pones 5,6,7 y 8. Objetivo: Aprender a conectar una entrada digital al arduino.

Diagrama

Entradas/Salidas Analógicas analogRead(pin): lee el valor desde un pin analógico con una resolución de 10 bits. En un rango de (0-1023). analogWrite(pin,value): escribe un valor pseudo analógico usando modulación por ancho de pulso (PWM) con una resolución de 8 bits. Un rango de (0-255).

Sensor de Rotación(Potenciometro) Un potenciómetro es un elemento simple que proporciona una resistencia variable, que podemos leer en la placa Arduino como un valor analógico. La función analogRead() devuelve un número entre 0 y 1023 que es proporcional a la cantidad de voltaje que se aplica a la clavija.

Ejemplo Entrada Analógica: Controlar el tiempo de encendido y apagado de un LED int potPin = 2; int ledPin = 13; int val = 0; void setup () { pinMode (ledPin, OUTPUT); } void loop () { val = analogRead (potPin); digitalWrite (ledPin, HIGH); delay (val); digitalWrite (ledPin, LOW);

Liquid Crystal Display (LCD)

Conexión Física Interfaz Paralela 4 Bits de Datos 2 Bits de Registro Hitachi HD44780 drivers

LCD – Librería LiquidCrystal Display #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); // Dimensiones de la LCD lcd.print("hello, world!"); } void loop() { lcd.noBlink(); delay(3000); lcd.blink(); delay(3000); }

Semana Cinco

Motores DC Los pines de salida de Arduino son ideales para controlar directamente los pequeños elementos eléctricos, como los LED. Sin embargo, cuando se trata de dispositivos de consumos más grandes es necesario incorporar otros dispositivos como ser un transistor externo el cual nos es muy útil ya que se obtiene una gran cantidad de corriente con una, mucho menor , además incorporamos diodos para brindar mayor protección. - + E B C

Utilizando transistor tipo NPN, conectaremos la carga (Motor) al colector del transistor y el emisor al negativo . Así, cuando la señal alta del pin de nuestro Arduino alcance la base, fluirá una pequeña corriente de la base al emisor y la corriente a través del transistor fluirá y el motor girará.

Práctica: Controlar encedido y apagado de un Motor DC

Código const int transistorPin = 9;    //Conexión a Base del Transistor void setup() {     pinMode(transistorPin, OUTPUT); } void loop() {    digitalWrite(transistorPin, HIGH);    delay(1000);    digitalWrite(transistorPin, LOW);    delay(1000); }

PWM (Modulación por ancho de pulso) Es una técnica para simular una salida analógica con una salida digital. El control digital se usa para crear una onda cuadrada, una señal que conmuta constantemente entre encendido y apagado.

Proporcionalidad 0 1023 = 𝑋 255 512 1023 = 𝑋 255 1023 1023 = 𝑋 255 X=0

Funcion MAP (Proporcionalidad) map(value, fromLow, fromHigh, toLow, toHigh) Parámetros value: el número (valor) a mapear. fromLow: el límite inferior del rango actual del valor. fromHigh: el límite superior del rango actual del valor. toLow: límite inferior del rango deseado. toHigh: límite superior del rango deseado. Devuelve El valor mapeado. void setup() { Serial.begin(9600); } void loop() { int val = analogRead(0); val = map(val, 0, 1023, 0, 255); Serial.print(“valor :”); Serial.print(val);

PWM: MOTOR DC Funcionamiento Una señal lógica alta (5V) abre la puerta y permite el paso de la corriente, una señal de nivel bajo (0V) cierra la puerta e impide el paso de corriente. Esta señal que se debe transmitir tiene la ventaja de emplear un amperaje mínimo.

Práctica: Utilizar un potenciometro como entrada analogica para controlar la salida digital pwm de un motor DC. Aplicar conceptos de entradas y salidas digitales y analogicas y mapeo de señales.

Codigo int pinMotor=9; void setup() { pinMode(pinMotor,OUTPUT); Serial.begin(9600); } void loop() { int valor = analogRead(0); int velocidad = map(valor, 0, 1023, 0, 255); analogWrite(pinMotor,velocidad); Serial.print(“valor :”); Serial.println(velocidad);

Control de Motor usando la comunicación Serial int entrada = 0; int pinMotor = 9;   void setup() {   // inicializar puerto serie   Serial.begin(9600);   // preparar salida digital   pinMode(pinMotor, OUTPUT); } void loop() {   // leer dato si disponible   if(Serial.available()){     entrada = Serial.read();     // escribir en el pin     analogWrite(pinMotor, entrada);   }

LED Dimmer int ledPin = 9;     void setup()  {    //Hace Nada }  void loop()  {     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {         analogWrite(ledPin, fadeValue);                     delay(30);                               }    for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {        analogWrite(ledPin, fadeValue);                 delay(30);                               }  }

Práctico: Realizar el ejercicio anterior Led Dimmer, utilizando un potenciometro o un fotoresistor para controlar la intensidad de la luz de un LED.

Servomotores Dispositivo similar a un motor DC que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Uso de liberia <Servo.h>

Ejemplo de Control de un Servo Motor #include <Servo.h> Servo servoMain; void setup() { servoMain.attach(10); } void loop() { servoMain.write(45); delay(1000); servoMain.write(0); delay(1000); servoMain.write(90); delay(1000); servoMain.write(135); delay(1000); servoMain.write(180); servoMain.write(90); Ejemplo de Control de un Servo Motor

#include <Servo.h>    Servo myservo;  // crear un objeto                 // un maximo de 8 objetos pueden ser instanciados   int pos = 0;    // variable que almacena la posicion del servo   void setup()  {    myservo.attach(9);   }      void loop()  {    for(pos = 0; pos < 180; pos += 1)  // de 0 grados a 180 grados, 1 grado a la vez   {                                       myservo.write(pos);              // Moverse a la posicion indicada en pos     delay(15);                       // una espera de 15 ms   }    for(pos = 180; pos>=1; pos-=1)     //de 180 grados a 0 grados   {                                     myservo.write(pos);             // Moverse a la posicion indicada en pos       delay(15);                         // una espera de 15 ms   }  }

Semana Seis

PING (Sensor Ultrasónico) El Ping es un medidor de distancias por ultrasonidos. Funciona enviando una ráfaga de ultrasonido y esperando a escuchar el eco que se produce cuando esta rebota con el objeto y en función de ese tiempo se obtiene la distancia.

Ultrasónico ( 5 Pines) Pin 5 Pin 1 Lo que hay que hacer es mandar un señal de arranque en el pin 3 del SRF04 y después leer la anchura del impulso que nos proporciona en el pin 2. El pulso de disparo tiene que tener una anchura mínima de 10 uS. Hay que dejar un retardo de 10 ms desde que se hace una lectura hasta que se realiza la siguiente, con el fin de que el circuito se estabilice.

Ultrasonico (3 Pines) Pin 1: tierra Pin 2: Vcc (5v) Pin3: Señal de ultrasonido Emite y recibe la señal. Se activa con un pulso de 2 o mas Microsegundos

Conexión Física

Conversiones: La compañía Parallax nos provee la siguiente información: Tenemos 74 Microsegundos por pulgada. Tenemos 29 Microsegundos por centímetro.

Ping 3 Pines const int pingPin = 7; void setup() {   Serial.begin(9600); } void loop() {      long tduracion, pulgadas, cm; //Paso1: Asegurar pulso limpio   pinMode(pingPin, OUTPUT);   digitalWrite(pingPin, LOW);   delayMicroseconds(2); //Paso2:Emitir el Pulso   digitalWrite(pingPin, HIGH);   delayMicroseconds(5);   digitalWrite(pingPin, LOW); //Paso3: Modificar el Pin y capturar dato   pinMode(pingPin, INPUT);   tduracion = pulseIn(pingPin, HIGH); //Paso4: Hacer las conversiones pulgadas= microsecondsToInches(tduracion);   cm = microsecondsToCentimeters(tduracion);      Serial.print(pulgadas);   Serial.print("in, ");   Serial.print(cm);   Serial.print("cm");   Serial.println();      delay(100); } long microsecondsToInches(long microseconds){  return (microseconds / 74) / 2; } long microsecondsToCentimeters(long microseconds){    return (microseconds / 29) / 2; } pulseIn: devuelve el tiempo(micros) en el que permanece activo el estado asignado.

Ping 5 Pines void setup(){ Serial.begin(9600); pinMode(8,OUTPUT); void loop(){ long duracion, cm, in; //Paso 1: Emitir Pulso digitalWrite(8,LOW); delayMicroseconds(2); digitalWrite(8,HIGH); delayMicroseconds(10); digitalWrite(pin,LOW); //Paso 2: Recibir la senal duracion=pulseIn(7,HIGH); // en microsegundos //Paso 3: conversion de las unidades de segundos a cms/in cm=conversioncms(duracion); in=conversionin(duracion); Serial.print(cm); Serial.print("cms"); Serial.print(in); Serial.println("in"); } void setup(){ Serial.begin(9600); pinMode(8,OUTPUT); pinMode(7,INPUT); } long conversioncms(long msegundos){ return (msegundos/29)/2;} long conversionin(long msegundos){ return (msegundos/74)/2;

Sensor Infrarrojo Sharp es un sensor análogo de larga distancia Sharp, con un alcance de detección de 20cm a 150cm. La salida análoga varia de 2.8V en 20cm a 0.4V en 150cm, con un voltaje de alimentación entre 4.5 y 5.5 VDC. La distancia se indica mediante una señal analógica, por lo que este sensor es muy fácil de usar. Es un gran sensor para detectar objetos a una distancia de hasta 150cm. Utilizar la funcion analogRead() Características:  Voltaje de alimentación 4.5 a 5.5 VCC  Temperatura de operación -10 a 60°C  Rango mínimo de medida: 20cm  Rango máximo de medida: 150cm  Consume 33mA

Ejemplo int sensorPin = 0; //pin analogico 0 int varSensor = 0; void setup(){ Serial.begin(9600); } void loop(){ varSensor = analogRead(sensorPin); Serial.print("Sensor indica: "); Serial.print(varSensor); delay(1000);

Práctico Utilizar un sensor infrarrojo para medir la distancia entre tres rangos distintos: 0-100 : Encender Led Rojo e imprimir “Distancia 1” 101 -250 : Encender Led Amarillo e imprimir “Distancia 2” 251 – 400: Encender Led Verde e imprimir “Distancia 3”

EEPROM: El microcontrolador tiene una memoria EEPROM de 512 bytes, cuyos datos son guardados cuando se apaga el microcontrolador. Debemos importar la libreria a nuestro proyecto: #include <EEPROM.h> Funciones: EEPROM.write(posicionMemoria, valor a guardar) EEPROM.read(posicion en Memoria) // se debe asignar a una variable

Práctico Almacenar 10 valores en un rango de 0 – 100 en la memoria EEPROM. Luego evaluar cada uno de esos valores y si se encuentra en el rango de 0-50 encender un LED Rojo y en el rango de 51- 100 encender un LED Amarillo.

FIN DEL CURSO 