Arduino componentes

35
ARDUINO 10 COMPONENTES EN ESTE TRABAJO PODREMOS OPSERVAR ALGUNOS COMPONENTES DE ARDUINO Y EL CODIGO CORRESPONDIENTE LUIS ENRIQUE HERNANDEZ ANIBAL Y KAREN LOERA 01/01/2015

Transcript of Arduino componentes

Page 1: Arduino componentes

ARDUINO 10 COMPONENTES EN ESTE TRABAJO PODREMOS OPSERVAR ALGUNOS COMPONENTES DE ARDUINO Y EL CODIGO CORRESPONDIENTE LUIS ENRIQUE HERNANDEZ ANIBAL Y KAREN LOERA 01/01/2015

Page 2: Arduino componentes

INDICE-

CONTROL REMOTO………….3

RFID…………………………………5

MATRIZ DE LEDS…………….8

DISPLAY DE SEGMENTOS.9

LED RGB………………………..11

LCD………………………………..14

SENSOR DE HUMEDAD….16

SENSOR DE TEMPERATURA..17

RELEVADOR……………………27

MOTOR A PASOS……………29-31

Page 3: Arduino componentes

CONTROL REMOTO

Objetivo-que la persona aprenda a controlar el control remoto del paquete

arduino y así aprenda más sobre arduino

En esta parte aprenderemos sobre el código , como conectar y su uso del control

remoto y arduino uno

Materiales- utilizar una placa de desarrollo Arduino UNO, y un receptor

infrarrojo con filtro pasa banda VS1838. Para hacer más didáctico el

experimento usaremos también una batería de 9 volt y un LED.

Conexión-

Page 4: Arduino componentes

Código-

/ Cantidad de pulsos

#define TRAIN_LENGTH 32

// En microsegundos

#define LOW_LIMIT 600

#define HIGH_LIMIT 1800

#define INIT_LIMIT 4000

#define IN 2

#define LED 13

long start, delta = 0;

uint32_t value;

int pos = 0;

boolean has_value = false;

unsigned int key[10];

void inputPin() {

noInterrupts();

if (has_value) return;

if (digitalRead(IN) == HIGH) {

start = micros();

}

else {

delta = micros() - start;

if (delta < LOW_LIMIT) {

Page 5: Arduino componentes

value <<= 1;

value |= 1;

++pos;

}

else if (delta < HIGH_LIMIT) {

value <<= 1;

value |= 0;

++pos;

}

else if (delta > INIT_LIMIT) {

value = 0;

pos = 0;

}

if (pos == TRAIN_LENGTH) {

has_value = true;

}

}

interrupts();

}

void setup()

{

key[0] = 0x9768;

key[1] = 0xCF30;

key[2] = 0xE718;

key[3] = 0x857A;

key[4] = 0xEF10;

key[5] = 0xC738;

key[6] = 0xA55A;

key[7] = 0xBD42;

key[8] = 0xB54A;

key[9] = 0xAD52;

Serial.begin(115200);

pinMode(IN, INPUT);

pinMode(LED, OUTPUT);

digitalWrite(LED, LOW);

attachInterrupt(0, inputPin, CHANGE);

}

void loop()

{

Page 6: Arduino componentes

int i;

if (has_value) {

Serial.print("V: ");

Serial.println(value & 0x0000FFFF, HEX);

i = 0;

while(i<10 && (key[i] != (value & 0x0000FFFF))) ++i;

Serial.println(i);

while(i--) {

digitalWrite(LED, HIGH);

delay(400);

digitalWrite(LED, LOW);

delay(200);

}

has_value = false;

pos = 0;

}

}

Funcionamiento-

Cuando la persona presione uno de los botones del control el led se encenderá

dependiendo del botón presionado.

Conclusiones-

Mi conclusión es que con este proyecto podremos observar cómo se usa el

control remoto y es muy entretenido hacerlo funcionar

Fuentes-

http://geekytheory.com/protocolo-nec-receptor-ir-con-arduino/

Page 7: Arduino componentes

RFID

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO APRENDEREMOS A USA EL COMPONENTE RFID

MATERIALES - Módulo Lector RFID-RC522 RF y tarjeta – 1 Arduino

Uno – Cable USB serial CONEXIÓN A continuación se muestra una tabla

con los pines del módulo RFID RC552, así como la conexión que tendrá con el

Arduino UNO En la imagen de arriba se muestra la parte trasera del RFID

RC552, en la parte inferior de esta imagen esta muestra los nombres

correspondientes de los pines.

CODIGO-

#include

#include

Page 8: Arduino componentes

RFID rfid(10,5);

void setup()

{

Serial.begin(9600);

SPI.begin(); rfid.init();

}

unsigned char het[16]={'H','E','T','P','R','O',' ','R','F','I','D',' ','5','5','2',' '}; //Declaracion

de cadena de caracteres

unsigned char *writeData=het; //asigna het a char tipo puntero

unsigned char *str; //char tipo puntero utilizado para la función de lectura de

un bloque

void loop()

{

if (rfid.isCard()) {

rfid.write(8,writeData); //Función escritura (num de bloque, string)

rfid.read(8,str); //Función lectura (num de bloque, str) guarda lo que está

en el bloque a str

Serial.print(str[0]); //Imprime lo que se guardó en str de la funcion read

}

rfid.halt();

}

FUNCIONAMIENTO-

ES QUE LA PERSONA OBSERVE COMO ES QUE ESTAN FUNCIONANDO

LOS HOTELES CON CERRADURAS Y LA PUEDA CREAR PARA SI MISMO

Page 9: Arduino componentes

CONCLUSIONES –

ES QUE LA CREACION DE ESL RFID ES MUY UTIL PARA OBSERVAR LO

QUE SON LAS PUERTAS ELECTRONICAS

FUENTES-

http://hetpro-store.com/TUTORIALES/arduino/comunicacion/modulo-lector-rfid-

rc522-rf-con-arduino/

MATRIZ DE LEDS

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

Page 10: Arduino componentes

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR EL MATRIZ

DE LEDS Y SU CONFIGURACION

MATERIALES-

MATRIZ DE LEDS 8X8,ARDUINO,CIRCUITO INTEGRADOR,

CODIGO-

Page 11: Arduino componentes

FUNCIONAMIENTO-

CONCLUSION-

MI CONCLUSION ES QUE ESTO PUEDE AYUDAR A LAS PERSONAS A DAR

HERMOSOS MENSAJES PARA CUALQUIER OCACION

Page 12: Arduino componentes

DISPLAY DE 7 SEGMENTOS

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR EL DISPLAY

DE 7 SEGMENTOS Y SU CONFIGURACION

MATERIALES-

DISPLAY DE 7 SEGMENTOS, ARDUINO, PROTOBUARD, Y PUENTES

CONEXIÓN-

Page 13: Arduino componentes

CODIGO-

int led = 13;

int led1 = 12;

int led2 = 11;

int led3 = 10;

int led4 = 9;

int led5 = 8;

int led6 = 7;

void setup() { pinMode(led, OUTPUT);

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

pinMode(led3, OUTPUT);

pinMode(led4, OUTPUT);

pinMode(led5, OUTPUT);

pinMode(led6, OUTPUT);

}

void loop() { digitalWrite(led2, HIGH);

delay(1000);

digitalWrite(led2, LOW);

//numero cero

digitalWrite(led2, HIGH);

digitalWrite(led3, HIGH);

digitalWrite(led4, HIGH);

digitalWrite(led5, HIGH);

digitalWrite(led6, HIGH);

delay(1000); digitalWrite(led2, LOW);

digitalWrite(led3, LOW);

digitalWrite(led4, LOW);

digitalWrite(led5, LOW);

digitalWrite(led6, LOW); //numero uno

digitalWrite(led1, HIGH);

digitalWrite(led4, HIGH);

delay(1000);

digitalWrite(led1, LOW);

Page 14: Arduino componentes

digitalWrite(led4, LOW);

//numero dos

digitalWrite(led4, HIGH);

digitalWrite(led6, HIGH);

delay(1000);

digitalWrite(led4, LOW);

digitalWrite(led6, LOW);

//numero tres

digitalWrite(led3, HIGH);

digitalWrite(led6, HIGH);

digitalWrite(led5, HIGH);

delay(1000);

digitalWrite(led3, LOW);

digitalWrite(led6, LOW);

digitalWrite(led5, LOW);

//numero cuatro

digitalWrite(led, HIGH);

digitalWrite(led6, HIGH);

delay(1000);

digitalWrite(led, LOW);

digitalWrite(led6, LOW);

//numero cinco

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

//numero seis

digitalWrite(led4, HIGH);

digitalWrite(led5, HIGH);

digitalWrite(led6, HIGH);

digitalWrite(led2, HIGH);

delay(1000);

digitalWrite(led4, LOW);

digitalWrite(led5, LOW);

digitalWrite(led6, LOW); digitalWrite(led2, LOW); //numero siete

delay(1000); //numero ocho

digitalWrite(led5, HIGH);

digitalWrite(led6, HIGH);

delay(1000);

Page 15: Arduino componentes

digitalWrite(led5, LOW);

digitalWrite(led6, LOW);

//numero nueve

}

FUNCIONAMIENTO-

ES QUE PUEDAN COLOCARLE NUEMOS Y ESTE ARA EL CONTEO DE

TODOS COMO DEL 0-9 O 1-5 ETC.

FUENTE

http://panamahitek.com/control-de-display-7-segmentos-mediante-pulsadores/

LED RGB

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR LOS LED RGB

Y SU CONFIGURACION

MATERIALES-

- 1 placa Arduino Uno

- Jumpers para Conexo

- 3 Resistores de 330 Ohms - 0,25W

- 1 LED RGB

Page 16: Arduino componentes

CODIGO-

/ Firmware para Controle de Cores do LED RGB

#define RED 3 // Define o pino 3 com PWM como RED

#define BLUE 5 // Define o pino 5 com PWM como BLUE

#define GREEN 6 // Define o pino 6 com PWM como GREEN

int red = 255, green = 255, blue = 255; // valores de 0 a 255 (variá-los para obter

cores diferentes).

void setup() {

pinMode (RED, OUTPUT); // Pino 3 declarado como saída

pinMode (BLUE, OUTPUT); // Pino 5 declarado como saída

pinMode (GREEN, OUTPUT); // Pino 6 declarado como saída

}

void loop() {

analogWrite (GREEN, green); // Envia o sinal de "green" para o terminal de cor

verde do LED

analogWrite (BLUE, blue); // Envia o sinal de "blue" para o terminal de cor azul

do LED

analogWrite (RED, red); // Envia o sinal de "red" para o terminal de cor

vvermelha do LED

}

FUNCION-

EN ESTE PODRAS AOPSERVAR DEPENDIENDO DEL CODIGO EL CAMBIO

DE COLORES QUE EFECTARUA EL LED Y ASI PODRAS CAMBIARLO A TU

GUSTO

Page 17: Arduino componentes

CONCLUSION-

ES QUE ESTO PUEDE AYUDAR PASA FUTUROS PROTECTOS DE ARDUINO

A GRAN ESCALA

FUENTE-

http://geekytheory.com/tutorial-arduino-controlar-un-led-rgb-utilizando-

potenciometros/

LCD

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR LA

PANTALLA LCD Y HACER SU CONFIGURACION

MATERIALES-

PANTALLA LCD,ARDUINO UNO.

CODIGO-

/*

Ejemplo de uso de display LCD 16x2. Usando la librería LiquidCrystal

library compatible con el driver de Hitachi HD44780 driver

Page 18: Arduino componentes

*/

// incluimos la libreria LiquidCrystal

#include

// inicializamos la librería con los numeros pins del interfaz

// cada LCD puede llevar sus propios numeros

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

void setup() {

// establecemos el numero de columnas y filas del display

lcd.begin(16, 2);

// enviamos el mensaje a mostrar en el display

lcd.print("ajpdsoft");

}

void loop() {

// enviamos la posicion del cursor al display

// (nota: la linea 1 es la segunda fila, empieza a contar en 0

lcd.setCursor(0, 1);

// mostramos el numero de segundos desde el inicio del programa

lcd.print(millis()/1000); }

Page 19: Arduino componentes

FUNCIONAMIENTO –

EN EL PODRAS OBSERVAR LOS MENSAJES QUE PREVIA MENTE

ESCRIBISTE

CONCLUSION-ES ESTE PROYECTO PODREMOS OPSERVAR COMO

FUNCIONA LA PANTALLA LCD

FUENTES- http://panamahitek.com/uso-de-pantalla-lcd-con-arduino/

SENSOR DE HUMEDAD

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR EL SENSOR

DE HUMEDAD Y HACER SU CONFIGURACION

MATERIALES-

SENSOR DHT11,ARDUINO Y PUENTES

CODIGO-

#include "DHT.h" //cargamos la librería DHT

#define DHTPIN 2 //Seleccionamos el pin en el que se //conectará el sensor

#define DHTTYPE DHT11 //Se selecciona el DHT11 (hay //otros DHT)

Page 20: Arduino componentes

DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por

Arduino para comunicarse con el sensor

void setup() {

Serial.begin(9600); //Se inicia la comunicación serial

dht.begin(); //Se inicia el sensor

}

void loop() {

float h = dht.readHumidity(); //Se lee la humedad

float t = dht.readTemperature(); //Se lee la temperatura

//Se imprimen las variables

Serial.println("Humedad: ");

Serial.println(h);

Serial.println("Temperatura: ");

Serial.println(t);

delay(2000); //Se espera 2 segundos para seguir leyendo //datos

}

FUNCIONAMIENTO-

QUE LA PERSONA PUEDA DETECTAR LA TTEMPERATURA DEL

AMBIENTE

CONCLUSION-

QUE LA PERSONA PUEDA DETECTAR DIFERENTES ELEMENTOS COMO

LA HUMEDAD DEL AMBIENTE

FUENTE-

http://panamahitek.com/dht11-sensor-de-humedadtemperatura-para-arduino/

Page 21: Arduino componentes

SENSOR DE TEMPERATURA

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR EL SENSOR

DE TEMPERATURA Y HACER SU CONFIGURACION

MATERIALES-

SENSOR DE TEMPERATURA, ARDUINO,PANTALLA LCD,PUENTES

CODIGO-

#include

#include

#define ThermistorPIN 1 // Analog Pin 1

#define NUM_KEYS 5

/*

Circuito del dispaly LCD:

* LCD RS pin to digital pin 8

* LCD Enable pin to digital pin 9

* LCD D4 pin to digital pin 4

* LCD D5 pin to digital pin 5

* LCD D6 pin to digital pin 6

* LCD D7 pin to digital pin 7

* LCD BL pin to digital pin 10

* KEY pin to analogl pin 0

*

* Esquema del sensor de temperatura:

* [Ground] -- [10k-pad-resistor] -- | -- [10k thermistor] --[Vcc (5v)]

* |

Page 22: Arduino componentes

* Analog Pin 1

*/

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

const int numeroDeMenus=6;

char tituloMenu[numeroDeMenus][16] = {

"Fijar Temp.: ",

"Fijar Tiempo:",

"Kp: ",

"Kd: ",

"Ki: ",

"Intensidad: " };

int adc_key_val[5] ={

50, 200, 400, 600, 800 };

int adc_key_in;

int key=-1;

int oldkey=-1;

boolean luzEncendida=true;

boolean cursorActivo=false;

boolean enMenu=false;

unsigned long time;

unsigned long tiempoPID;

byte numeroLecturas=0;

int x=0;

int signo=0;

char temp[10];

int lecturas[100];

byte numeroLectura=0;

//int lectura=0;

int maximo, minimo, diferencia, t1, t2, t3;

byte consigna=25;

byte tiempo=1;

byte kp=1;

byte kd=1;

byte ki=1;

byte intensidad=10;

void setup()

{

Page 23: Arduino componentes

cargarConfig();

pinMode(10, OUTPUT);

analogWrite(10,intensidad*25);

Serial.begin(9600);

lcd.clear();

lcd.begin(16, 2);

lcd.setCursor(0,0);

lcd.print("www.ajpdsoft.com");

lcd.setCursor(0,1);

lcd.print("C.Ventanas v1.0 ");

delay(2000);

// lcd.setCursor(0,0);

// lcd.print("Muevase con las ");

// lcd.setCursor(0,1);

// lcd.print("teclas direccion");

// delay(4000);

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Temperatura: ");

lcd.setCursor(0,1);

int lectura=getTemp(1);

sprintf(temp, "%3d%c%1d%cC", lectura/100, '.', lectura/10%10,223);

lcd.print(temp);

time = millis();

tiempoPID = millis();

}

void loop()

{

int lectura = getTemp(ThermistorPIN);

lecturas[numeroLectura++] = lectura;

if (millis()-time > 20000) { // Si han pasado mas de 20 segundos apagamos la

luz

digitalWrite(10, LOW);

luzEncendida=false;

}

if (millis()-time > 7000) { // Si han pasado mas de 7 segundos salimos del menu

if (enMenu) guardarConfig();

enMenu = false;

x=0;

time = millis();

// }

// if (!enMenu) {

lcd.clear();

Page 24: Arduino componentes

lcd.setCursor(0,0);

lcd.print("Temperatura: ");

lcd.setCursor(0,1);

sprintf(temp, "%3d%c%1d%cC", lectura/100, '.', lectura/10%10,223);

lcd.print(temp);

// Serial.print("Temperatura[");

// Serial.print(numeroLectura);

// Serial.print("]: ");

// Serial.println(temp);

}

if (millis()-time > 5000) { // Si han pasado mas de 5 segundos apagamos el

cursor

lcd.noBlink();

cursorActivo=false;

}

adc_key_in = analogRead(0); // Leemos el valor de la pulsacion

key = get_key(adc_key_in); // Obtenemos el boton pulsado

if (key != oldkey) // if keypress is detected

{

delay(50); // Espera para evitar los rebotes de las pulsaciones

adc_key_in = analogRead(0); // Leemos el valor de la pulsacion

key = get_key(adc_key_in); // Obtenemos el boton pulsado

if (key != oldkey)

{

time = millis(); // TODO: falta la comprobacion de si se ha desbordado el

tiempo

if (!luzEncendida) { // Al pulsar cualquier tecla encendemos la pantalla

analogWrite(10,intensidad*25);

luzEncendida=true;

}

else { // si la pantalla esta encendida seguimos funcionando normalmente

oldkey = key;

char accion = 0;

if (key >=0){ // Si se ha pulsado cualquier tecla

lcd.blink(); // Mostramos el cursor parpadeando

cursorActivo=true;

}

if ((key == 0) && (enMenu)){ // Se ha pulsado la tecla derecha

x++;

if (x>numeroDeMenus-1) x=numeroDeMenus-1;

}

if ((key == 1) && (enMenu)) { // Se ha pulsado la tecla arriba

Page 25: Arduino componentes

accion++;

}

if ((key == 2) && (enMenu)) { // Se ha pulsado la tecla abajo

accion = accion-1;

}

if ((key == 3) && (enMenu)) { // Se ha pulsado la tecla izquierda

x--;

if (x<0) x = 0;

}

if (key == 4){ // Se ha pulsado la tecla de seleccion

}

enMenu = true;

lcd.clear();

lcd.setCursor(0,0);

lcd.print(tituloMenu[x]);

lcd.setCursor(0,1);

switch (x) {

case 0: // Estamos en fijar temperatura

consigna += accion;

lcd.print(consigna);

lcd.print((char)223);

lcd.print("C");

break;

case 1: // Estamos en fijar tiempo

tiempo += accion;

lcd.print(tiempo);

lcd.print("0 seg.");

break;

case 2: // Estamos en Kp.

kp += accion;

lcd.print(kp);

break;

case 3: // Estamos en Kd.

kd += accion;

lcd.print(kd);

break;

case 4: // Estamos en Ki.

ki += accion;

lcd.print(ki);

break;

case 5: // Estamos en Ki.

intensidad += accion;

if (intensidad > 254) intensidad = 0;

if (intensidad > 10) intensidad = 10;

Page 26: Arduino componentes

lcd.print(intensidad);

lcd.print("0%");

analogWrite(10,intensidad*25);

break;

}

}

}

}

if ((numeroLectura > 99) && (numeroLecturas < 2)) {

long suma = 0;

maximo = -10000;

minimo = 10000;

for (int i=0; i < 100; i++){

suma = suma + lecturas[i];

if (lecturas[i] > maximo) {

maximo = lecturas[i];

}

if (lecturas[i] < minimo) {

minimo = lecturas[i];

}

// Serial.print("Temperatura[");

// Serial.print(i);

// Serial.print("]: ");

// Serial.println(lecturas[i]);

}

diferencia = maximo - minimo;

suma = suma / 100;

// Si la diferencia es superior a un grado

//es que ha habido un error en la lectura

if (diferencia > 100) {

Serial.println("Lectura no valida");

// TODO: Descartar lectura y repetir la medida

}

else {

numeroLecturas++;

t3=t2;

t2=t1;

t1=suma;

}

Serial.print("Suma: ");

Serial.println(suma);

/* Serial.print("Media: ");

Serial.print(suma/100);

Page 27: Arduino componentes

Serial.print(",");

Serial.println(suma/10%10);

Serial.print("Maximo: ");

Serial.print(maximo/100);

Serial.print(",");

Serial.print(maximo/10%10);

Serial.print(" - Minimo: ");

Serial.print(minimo/100);

Serial.print(",");

Serial.print(minimo/10%10);

Serial.print(" - Diferencia: ");

Serial.print(diferencia/100);

Serial.print(",");

Serial.println(diferencia/10%10); */

}

if (numeroLectura > 99) {

// Cuando se termina de tomar las 100

//lecturas empezamos de nuevo por la primera

numeroLectura = 0;

}

PID();

delay(10);

// Si se desborda millis() empieza otra

//vez por cero, ocurre cada 50 dias

if (millis() < time){

time = millis();

}

}

void PID(){

// Si se desborda millis() empieza otra

// vez por cero, ocurre cada 50 dias

if (millis() < tiempoPID){

tiempoPID = millis();

}

// Si no ha pasado todavía el timepo de ciclo del PID

if (millis() < tiempoPID + (tiempo*10*1000)){

// entonces mantenemos la fuerza y esperamos mas tiempo

// s = sActualPID;

}

else if (numeroLecturas >= 2){

numeroLecturas--;

Serial.print("Distancia a la consigna: ");

Serial.print(t1-consigna*100);

Page 28: Arduino componentes

Serial.print(" - Velocidad: ");

Serial.println(t1-t2);

tiempoPID = millis();

}

}

// Convertimos el valor leido en analogico

// en un numero de boton pulsado

int get_key(unsigned int input)

{

int k;

for (k = 0; k < NUM_KEYS; k++)

{

if (input < adc_key_val[k])

{

return k;

}

}

if (k >= NUM_KEYS)k = -1; // Error en la lectura.

return k;

}

int temperaturaFicticia = 2450;

int ptf= 0;

int getTemp(byte input)

{

int celsius = Thermistor(analogRead(input))*100;

return celsius;

temperaturaFicticia += (random(7)-3-ptf);

if (temperaturaFicticia > 2800) ptf = 1;

if (temperaturaFicticia < 2000) ptf = 0;

return temperaturaFicticia;

}

float pad = 10000; // balance/pad resistor value, set this to

// the measured resistance of your pad resistor

// float thermr = 10000; // thermistor nominal resistance

float Thermistor(int RawADC) {

long Resistance;

float Temp; // Dual-Purpose variable to save space.

Page 29: Arduino componentes

Resistance=((1024 * pad / RawADC) - pad);

// Saving the Log(resistance) so not to calculate it 4 times later

Temp = log(Resistance);

Temp = 1 / (0.001129148 + (0.000234125 * Temp) +

(0.0000000876741 * Temp * Temp * Temp));

Temp = Temp - 273.15; // Convert Kelvin to Celsius

return Temp; // Devolver temperatura

}

boolean cargarConfig(){

if ((EEPROM.read(0) == 27) && (EEPROM.read(1) == 28) &&

(EEPROM.read(2) == 13) && (EEPROM.read(3) == 18)) {

// Comprobamos que la eeprom tenga una

// configuracion valida con numeros concretos

// solo cargamos el valor de la configuracion si los valores coinciden

if (EEPROM.read(4) == EEPROM.read(5)) consigna = EEPROM.read(4);

if (EEPROM.read(6) == EEPROM.read(7)) tiempo = EEPROM.read(6);

if (EEPROM.read(8) == EEPROM.read(9)) kp = EEPROM.read(8);

if (EEPROM.read(10) == EEPROM.read(11)) kd = EEPROM.read(10);

if (EEPROM.read(12) == EEPROM.read(13)) ki = EEPROM.read(12);

if (EEPROM.read(14) == EEPROM.read(15)) intensidad = EEPROM.read(14);

return true;

}

return false;

}

void guardarConfig(){

EEPROM.write(0,27);

EEPROM.write(1,28);

EEPROM.write(2,13);

EEPROM.write(3,18);

// Ponemos nmeros concretos en el comienzo

// de la EEPROM para confirmar que tiene valores correctos.

EEPROM.write(4,consigna);

EEPROM.write(5,consigna); // almacenamos los valores 2 veces

EEPROM.write(6,tiempo);

EEPROM.write(7,tiempo); // almacenamos los valores 2 veces

EEPROM.write(8,kp);

EEPROM.write(9,kp); // almacenamos los valores 2 veces

EEPROM.write(10,kd);

EEPROM.write(11,kd); // almacenamos los valores 2 veces

EEPROM.write(12,ki);

Page 30: Arduino componentes

EEPROM.write(13,ki); // almacenamos los valores 2 veces

EEPROM.write(14,intensidad);

EEPROM.write(15,intensidad); // almacenamos los valores 2 veces }

FUNCIONAMIENTO-ESTE PROYECTO PUEDE CALCULAR LA

TEMPERATURA EN EL AMBIENTE

CONCLUSION-QUE LA PERSONA PUEDA DETECTAR LA TEMPERATURA

DEL AMBIENTE Y QUE SEPA CUAL ES

FUENTE- http://rcmcomputointegrado.blogspot.mx/2012/05/proyecto-arduino-

sensor-de-temperatura.html

RELEVADOR

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR EL SENSOR

DE TEMPERATURA Y HACER SU CONFIGURACION

MATERIALES-

ARDUINO UNO,RELEVADOR,PROPODUARD,PUENTES,LEDSY PILA DE 9

VOLTS

Page 31: Arduino componentes

CODIGO-

int RELAY = 2;

void Set up() {

pinMode(RELAY,OUTPUT);

}

void loop(){

digitalwrite(Relay,HIGH);

delay(2000);

digitalwrite(Relay,LOW);

delay(2000);

}

Page 32: Arduino componentes

FUNCIONAMIENTO-

EN ESTE PROYECTO PODREMOS OPSERVAR EL FUNCIONAMIENTO DE EL

RELEVADOR ES EL QUE TRANSFORMA LA ENERGIA PARA

TRANSMITIRLA ATODOS

CONCLUSION-

ES ESTE PROYECTO PUDE OBSERVAR PARA QUE SIRVE UN RELEVADOR Y

LOS TANTOS USOS QUE TIENE

FUENTE-AMIGOS MITICOS

MOTOR A PASOS

OBJETIVO-QUE LA PERSONA APRENDA A USAR EL CONPONENTE Y LO

PUEDA CREAR CUANDO EL QUIERA PARA CUAL QUIER PROPOCITO

EN ESTE TRABAJO PODREMOS OPSERVAR COMO UTILIZAR EL SENSOR

DE TEMPERATURA Y HACER SU CONFIGURACION

MATERIALES-

-Arduino

-Servomotor/es (En este caso he usado un servomotor miniaturizado, por su

reducido consumo de energía, apto para arduino)

-Cables M/M para conexión fácil, fiable y flexible entre Arduino, ProtoBoard y

Servo, aunque recomiendo coger el pack de 100, por un precio asequible y no

tener que andar estirando nunca más (Pack de 100 cables Premium M/M)

-Placa de protipado (Si no se dispone ya de una)

Page 33: Arduino componentes

CODIGO-

1. #include <Servo.h>

2.

3. Servo servo1; // Crea un Objeto servo

4. int posicion; // Variable de la posicion del servo

5.

6. void setup()

7. {

8. servo1.attach(2); // Selecionamos el pin 2 como el pin de control para els

ervo

9. }

10.

11. void loop()

12. {

13.

14. posicion = 150; // Establecemos el valor de la posicion a 150º

15. posicion = map(posicion, 0, 1023, 0, 179); // Establecemos la relacion en

tre los grados de giro y el PWM

16. /* Con el mapa de valores anterior establecemos una relacin proporciona

l */

17. /* entre el pulso minimo 0 con el grado minimo, 0 tambien y el pulso ma

ximo*/

18. /* 1023 con el grado maximo, 179*/

19. servo1.write(posicion); // Escribimos la posicion con el mapa de

valores al servo

20. delay(150); // Y le damos un tiempo para que sea capaz de

moverse

Page 34: Arduino componentes

21. }

FUNCION-

AL INSERTAR EL CODIGO Y CARGAR ESTE SE MOVERA EN 180 GRADOS Y

NO MAS LENTO O RAPIDO DEPENDIENDO DE COMO LO DESEES

CONCLUSION-

ESTE PROYECTO PUEDE SER MUY YAMATIVO YAQUE CON EL MOTOR A

PASOS PUEDES CREAR DIFERENTES COSAS COMO UN CARRO O UNA

MANO MECANICA.

FUENTE-

http://diymakers.es/mover-motores-paso-paso-con-arduino/

Page 35: Arduino componentes

GRACIAS POR SU ATENCION Y ESPERO QUE EL TRABAJO LES SEA

DE AYUDA