Atentamente: La administración.
Electronica industrial de jhancarlos ramos
viernes, 5 de octubre de 2018
viernes, 6 de enero de 2017
ACTIVACIÓN DE BOMBILLAS CON MODULO RE LAY Y BLUETOOTH
GRACIAS POR PASAOS POR MI SIGUIENTE ENTRADA DE MI BLOGGER.
Aquí les daré mas información como se puede realizar el encendido de 4 bombillas con modulo re lay y modulo bluetooth. en seguida les presentare software que necesitamos incluirlo en nuestro arduino para hacer el encendido de cada bombilla a través de un celular esmarfon
PROGRAMACIÓN:
Aquí les daré mas información como se puede realizar el encendido de 4 bombillas con modulo re lay y modulo bluetooth. en seguida les presentare software que necesitamos incluirlo en nuestro arduino para hacer el encendido de cada bombilla a través de un celular esmarfon
#include <SoftwareSerial.h>
SoftwareSerial BT(2,3);// RX , TX
int ramos21;
int ramos22;
int ramos23;
int ramos24;
void setup() {
BT.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
if(BT.available()>0){
ramos21 = BT.read();
}
if(ramos21 == '1'){
digitalWrite(13,HIGH);
}
if(ramos21 == '2'){
digitalWrite(13,LOW);
}
if(BT.available()>0){
ramos22 = BT.read();
}
if(ramos22 == '3'){
digitalWrite(12,HIGH);
}
if(ramos22 == '4'){
digitalWrite(12,LOW);
}
if(BT.available()>0){
ramos23 = BT.read();
}
if(ramos23 == '5'){
digitalWrite(11,HIGH);
}
if(ramos23 == '6'){
digitalWrite(11,LOW);
}
if(BT.available()>0){
ramos24 = BT.read();
}
if(saul24 == '7'){
digitalWrite(10,HIGH);
}
if(ramos24 == '8'){
digitalWrite(10,LOW);
}
}
Control de focos con bluettooth
#include <SoftwareSerial.h>
SoftwareSerial BT(2,3);// RX , TX
int jhan21;
int jhan22;
int jhan23;
int jhan24;
void setup() {
BT.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
if(BT.available()>0){
jhan21 = BT.read();
}
if(jhan21 == '1'){
digitalWrite(13,HIGH);
}
if(jhan21 == '2'){
digitalWrite(13,LOW);
}
if(BT.available()>0){
jhan22 = BT.read();
}
if(jhan22 == '3'){
digitalWrite(12,HIGH);
}
if(jhan22 == '4'){
digitalWrite(12,LOW);
}
if(BT.available()>0){
jhan23 = BT.read();
}
if(jhan23 == '5'){
digitalWrite(11,HIGH);
}
if(jhan23 == '6'){
digitalWrite(11,LOW);
}
if(BT.available()>0){
jhan24 = BT.read();
}
if(jhan24 == '7'){
digitalWrite(10,HIGH);
}
if(jhan24 == '8'){
digitalWrite(10,LOW);
}
}
![]() |
Agregar leyenda |
AUTOR: JHANCARLOS RAMOS COTRINA
jueves, 29 de diciembre de 2016
Arranque directo de un motor trifasico de inducción (parte 2)
Arranque directo de un motor trifasico de inducción
Arranque de inversion de giro de un motor (JRC)
ARRANQUE DIRECTO Y INVERSIÓN DE GIRO DE UN MOTOR TRIFASICO
gracias por revisar este blogger y este vídeo sobre arranque directo y invercion de giro en un motor hacer , pero lo que consta es que para hacer funcionar este motor tenemos dos únicas formas como hacer funcionar correctamente y protegido.
1. forma se tendria que hacer con componentes eléctricos.
2. forma se tendria que hacer con componentes electrónicos como por ejemplo (triac BTA26600)
AUTOR: JHANCARLOS RAMOS COTRINA
CORREO. JHANCARLOS.5555@GMAIL.COM
martes, 27 de diciembre de 2016
PROGRAMACIÓN DE PIC 16F77A
HOLA SALUDOS A TODOS LOS QUE TENGAN QUE VISITAR MI BLOGGER. LES DEJARE UNOS AVANSES SOBRE LA PROGRAMACIÓN DEL PIC 16F77A QUE ES MUY CONOCIDO Y ADECUADO.
PARA
HACER QUE TE APAREZCA O TE ESCRIBA UNA PALABRA EN LCD FILA 1
sbit LCD_RS
at RB0_bit;
sbit LCD_EN
at RB1_bit;
sbit LCD_D4
at RB2_bit;
sbit LCD_D5
at RB3_bit;
sbit LCD_D6
at RB4_bit;
sbit LCD_D7
at RB5_bit;
sbit
LCD_RS_direction at TRISB0_bit;
sbit
LCD_EN_direction at TRISB1_bit;
sbit
LCD_D4_direction at TRISB2_bit;
sbit
LCD_D5_direction at TRISB3_bit;
sbit
LCD_D6_direction at TRISB4_bit;
sbit
LCD_D7_direction at TRISB5_bit;
void main()
{
LCD_Init();
LCD_Cmd(_LCD_CURSOR_OFF);
LCD_chr_Cp('h');
delay_ms(400);
LCD_chr_Cp('o');
delay_ms(400);
LCD_chr_Cp('l');
delay_ms(400);
LCD_chr_Cp('a');
delay_ms(400);
}
PARA
HACER QUE TE INACIALIZE EN LAS DOS
FILAS LOS COMANDOS INDICADOS FILA 1 Y 2
sbit LCD_RS
at RB0_bit;
sbit LCD_EN
at RB1_bit;
sbit LCD_D4
at RB2_bit;
sbit LCD_D5
at RB3_bit;
sbit LCD_D6
at RB4_bit;
sbit LCD_D7
at RB5_bit;
sbit
LCD_RS_direction at TRISB0_bit;
sbit
LCD_EN_direction at TRISB1_bit;
sbit
LCD_D4_direction at TRISB2_bit;
sbit
LCD_D5_direction at TRISB3_bit;
sbit
LCD_D6_direction at TRISB4_bit;
sbit
LCD_D7_direction at TRISB5_bit;
void main()
{
LCD_Init();
LCD_Cmd(_LCD_CURSOR_OFF);
LCD_chr(1,3,'h');
delay_ms(400);
LCD_chr(1,4,'o');
delay_ms(400);
LCD_chr(1,5,'l');
delay_ms(400);
LCD_chr(1,6,'a');
delay_ms(400);
LCD_chr(2,3,'m');
delay_ms(400);
LCD_chr(2,4,'u');
delay_ms(400);
LCD_chr(2,5,'n');
delay_ms(400);
LCD_chr(2,6,'d');
delay_ms(400);
LCD_chr(2,7,'o');
delay_ms(400);
}
DE LA FORMA MAS RÁPIDA Y SEGURA
PARA HACER QUE UNA PALABRA SE SALGA MAS
RÁPIDO SIN ESTAR ESCRIBIENDO UNA TRAS LA
OTRA SIN UTILIZAR “CP” EN ESE CASO YA LO BORRAMOS
sbit LCD_RS
at RB0_bit;
sbit LCD_EN
at RB1_bit;
sbit LCD_D4
at RB2_bit;
sbit LCD_D5
at RB3_bit;
sbit LCD_D6
at RB4_bit;
sbit LCD_D7
at RB5_bit;
sbit
LCD_RS_direction at TRISB0_bit;
sbit
LCD_EN_direction at TRISB1_bit;
sbit
LCD_D4_direction at TRISB2_bit;
sbit
LCD_D5_direction at TRISB3_bit;
sbit
LCD_D6_direction at TRISB4_bit;
sbit
LCD_D7_direction at TRISB5_bit;
void main()
{
LCD_Init();
LCD_Cmd(_LCD_CURSOR_OFF);
while (1){
LCD_Out(1,4,"hola mundo");
delay_ms(100);
LCD_Out(2,1,"bienvenidos IDAT");
delay_ms(100);
}
}
PARA REPRESENTAR LA TEMPERATURA
sbit LCD_RS
at RB0_bit;
sbit LCD_EN
at RB1_bit;
sbit LCD_D4
at RB2_bit;
sbit LCD_D5
at RB3_bit;
sbit LCD_D6
at RB4_bit;
sbit LCD_D7
at RB5_bit;
sbit
LCD_RS_direction at TRISB0_bit;
sbit
LCD_EN_direction at TRISB1_bit;
sbit
LCD_D4_direction at TRISB2_bit;
sbit
LCD_D5_direction at TRISB3_bit;
sbit
LCD_D6_direction at TRISB4_bit;
sbit
LCD_D7_direction at TRISB5_bit;
void main()
{
int temp =25;
float Text [10];
LCD_Init();
LCD_Cmd(_LCD_CURSOR_OFF);
while (1){
LCD_Out(1,4,"TEMPERATURA");
IntToStr(temp,Text);
LCD_Out(2,5,Text);
delay_ms(100);
}
}
AUTOR: JHANCARLOS RAMOS COTRINA
Etiquetas:
PROGRAMACIÓN EN PIC 16F77A
Ubicación:
Cajamarca, Perú
martes, 8 de noviembre de 2016
UN MINI SEMÁFORO CASERO
HOLA EN ESTA OPORTUNIDAD GRACIAS POR SU GENEROSIDAD DE VISITAR MI BLOGGER .
LOS DARÉ UNA GRAN INFORMACIÓN COMO HACER UN SEMÁFORO MINI CASERO MUY FÁCIL DE HACER.
LOS DARÉ UNA GRAN INFORMACIÓN COMO HACER UN SEMÁFORO MINI CASERO MUY FÁCIL DE HACER.
SEMAFORO
INSTITUTO SUPERIOR TECNOLÓGICO
“IDAT”

NOMBRE: JHANCARLOS RAMOS COTRINA
OCUPACIÓN: ESTUDIANTE
DIRECCION: CAJAMARCA (CAS: YERBA SANTA BAJA)
COLEGIO: ABRAHAM VALDELOMAR PINTO
ESCUELA: I.E. 82682 YERBA SANTA
MINI PROYECTO DE UN SEMÁFORO CASERO CON UN TAIMER NE555N.
SEMÁFORO
ª OBJETIVOS
Realizar un circuito que funcione como un pequeño semáforo como una
aplicación del circuito integrado 555, un semáforo de dos estados representados
por dos LEDs uno rojo y el otro verde. Pero si queremos un led amarillo es muy
opcional tendremos que actuar cm electrónicos y darle una solución para ver la ejecución de otro led más que
tenemos que incorporar.
Ver las variaciones en los Leds cuando se realizan cambios en los
componentes pasivos (resistencias y capacitores) ver cómo van variando el
tiempo de encendido y apagado uno con el otro.
MARCO TEÓRICO
El circuito integrado 555 es
de bajo costo y de grandes prestaciones. Inicialmente fue desarrollado por la
firma Signetics. En la actualidad es construido por
muchos otros fabricantes. Entre sus aplicaciones principales cabe destacar las
de multivibrador estable (dos estados metaestables) y monoestable (un estado
estable y otro metaestable), detector de impulsos, etcétera.En general el NE
555 es un controlador altamente estable capaz de producir retardos de tiempo u
oscilación bastante exactos. En el modo de operación de retardos de tiempo, el
tiempo es precisamente controlado por una resistencia y un condensador externo.
En el modo de operación astable como oscilador, la frecuencia y el ciclo de
trabajo son controlados con precisión por dos resistencias externas y un
condensador.
ª MATERIALES
·
Resistencias: R1 (6.8 KΩ), R2 (33, 82 y 100 KΩ) y R3 (220 Ω).
·
Capacitores:Electrolítico: 10 µF/16V y 100 µF/16V.
·
Diodo: 2 LEDs (rojo y verde).
·
Fuente: Una batería de 4-9V DC.
·
Circuito integrado: NE55N
ª
ª PROCEDIMIENTO
ª Armar el circuito
mostrado en la figura:
ª GRÁFICOS E IMÁGENES
ª
CONCLUSIONES
El proyecto semáforo, combina los destellos de un par de LEDs, a una
frecuencia de cerca de dos destellos por segundo, produciendo el mismo efecto
que las señales de las vías férreas.
La variación de los
elementos R1, R2 y C1 en el circuito implementado hace que el período de
oscilación sea más corto o más largo dependiendo de los valores de estos tres
elementos
Y así es como donde
llegando a ser todos estos pasos ya
tenemos nuestro semáforo mini casero
y un gran emoción a experimentar este circuito.
Gracias a
todos
PROGRAMAS DE PROGRAMACION EN ARDUINO UNO
GRACIAS OS AGRADESCO POR PASAOS Y REBISISAOS MI BLOGGER Y A CONTINUACIÓN LOS PRESENTAOS MAS INFORMACIÓN ACERCA DE PROGRAMACIÓN EN ARDUINO 1 .
PROGRAMAS Y CLASES DE SISTEMAS MICRO CONTROLADOS
Controlar tu arduino desde la PC mediante
comandos de texto
PROGRAMAS Y CLASES DE SISTEMAS MICRO CONTROLADOS
CON
ARDUINO
KEYPAD O MTECLADO 4X4
#include <Keypad.h>
const byte filas = 4 ; // tengo 4 filas
const byte columnas = 4; // tengo 4
columnas
char keys[filas][columnas]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinfila[filas]={9,8,7,6};
byte pincolumnas[columnas]={5,4,3,2} ;
Keypad keypad = Keypad(makeKeymap(keys), pinfila
,pincolumnas,filas,columnas);
void setup() {
Serial.begin(9600);
}
void loop() {
char tecla = keypad.getKey();
if(tecla!= NO_KEY){
Serial.println(tecla);
}
}
PARA ENCONTRAR UNA RAÍZ CUADRADA
/*#include <Math.h>
#include <stdio.h>
*/
int a;
int b;
int c;
float x1, x2;
void setup() {
Serial.begin(9600);
}
void loop() {
a=1;
b=-8;
c=16;
x1=( -b+sqrt (b*b
-4*a*c))/(2*a);
x2=( -b-sqrt(b*b -4*a*c))/
(2*a);
Serial.print("LA PRIMERA RAIZ ES
= ");
Serial.print(x1);
Serial.print("LA SEGUNDA RAIZ ES
= ");
Serial.print(x2);
delay (15000);
}
PARA ALLAR UNA O MAS FUNCIONES
/*#include <Math.h>
#include <stdio.h>
*/
float x1,x2;
void setup() {
Serial.begin(9600);
}
void loop() {
Raiz_Ecuacion(1,11,28);
Raiz_Ecuacion(2,-7,-15);
Raiz_Ecuacion(3,-7,-6);
delay(15000);
}
float Raiz_Ecuacion(float a, float b, float c){
x1=( -b+sqrt (b*b -4*a*c))/(2*a);
x2=( -b-sqrt(b*b -4*a*c))/
(2*a);
Serial.print("LA PRIMERA RAIZ ES
= ");
Serial.print(x1);
Serial.print("LA SEGUNDA RAIZ ES
= ");
Serial.print(x2);
delay (15000);
}
MULTÍMETRO PARA MEDIR
void setup() {
Serial.begin(9600);
}
void loop() {
int resol =analogRead (0);
float vol =
float(resol)*5.0/1023.0;
Serial.print("el
voltaje es ");
Serial.println(vol,3);
delay(1900);
}
COMO CALCULAR UN TRIANGULO
int a,b,c;
void setup() {
Serial.begin(9600);
}
void loop() {
area_triangulo(20,15,18);
area_triangulo(14,6,13);
area_triangulo(6,4,5);
delay(15000)
}
float area_del_triangulo(float a, float b, float c){
float p=(a+b+c)/(2);
float a2= (sqrt p*(p-a)*(p-b)*(p-c)));
Serial.print("EL PERIMETRO DEL
TRIANGULO ES = ");
Serial.println(p);
Serial.print("EL AREA DEL
TRIANGULO ES = ");
Serial.println(a2);
}
PANTALLA LCD CONFIGURACION CON UN
VALOR PRENDE Y APAGA
#include <LiquidCrystal.h>
/*
* RS => pin12
* E => pin11
* D4 => pin5
* D5 => pin4
* D6 => pin3
* D7 => pin2
*/
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
lcd.begin(2,2);
lcd.clear();
}
void loop() {
lcd.setCursor(0,2);
lcd.print("JHANCARLOS");
delay(1000);
}
PANTALLA LCD QUE RECORRA UNA
PALABRA
#include <LiquidCrystal.h>
/*
* RS => pin12
* E => pin11
* D4 => pin5
* D5 => pin4
* D6 => pin3
* D7 => pin2
*/
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
lcd.begin(16,2);
lcd.clear();
}
void loop() {
int P =0;
for(P=0; P<16; P++){
lcd.setCursor(P,0);
lcd.print("JHANCARLOS");
delay(1000);
lcd.clear();
}
}
LCD EL MISMO VALOR PERO SE
INACIALIZA EL MISMO VALOR
#include <LiquidCrystal.h>
/*
*RS= pin 13
*E = pin 12
*D4 = pin 5
*D5 = pin 4
*D6 = pin 3
*D7 = pin 2
*/
LiquidCrystal lcd(13,12,5,4,3,2);
void setup() {
lcd.begin(16,2);
lcd.clear();
}
void loop() {
int k;
for(k =0; k<=4; k++){
lcd.setCursor(k,0);
lcd.print("JHANCARLOS ");
delay(1000);
lcd.clear();
}
int p;
for(p =4; p>=0; p--){
lcd.setCursor(p,0);
lcd.print("JHANCARLOS ");
delay(1000);
}
int A;
for(A =0; A<=4; A++){
lcd.setCursor(A,1);
lcd.print("JHANCARLOS ");
delay(1000);
lcd.clear();
}
int B;
for(B =4; B>=0; B--){
lcd.setCursor(B,1);
lcd.print("JHANCARLOS ");
delay(1000);
}
}
LCD MIS DATOS PERSONALES EN
RRECORRIDO
#include <LiquidCrystal.h>
/*
* RS => pin12
* E => pin11
* D4 => pin5
* D5 => pin4
* D6 => pin3
* D7 => pin2
*/
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
lcd.begin(16,2);
}
void loop() {
int B = 0;
for(B=0; B<16; B++){
lcd.setCursor(B,0);
lcd.print(" HOLA MUNDO");
delay(1000);
lcd.clear();
}
int R = 0;
for(R=0; R<16; R++){
lcd.setCursor(R,0);
lcd.print(" MI NOMBRE ES");
delay(1000);
lcd.clear();
}
int P =0;
for(P=0; P<16; P++){
lcd.setCursor(P,0);
lcd.print("
JHANCARLOS");
delay(1000);
lcd.clear();
}
int E
= 0;
for(E=0; E<16; E++){
lcd.setCursor(E,0);
lcd.print("RAMOS COTRINA");
delay(1000);
lcd.clear();
}
int D = 0;
for(D=0; D<16; D++){
lcd.setCursor(D,0);
lcd.print("BECARIO EN BECA 18");
delay(1000);
lcd.clear();
}
int F = 0;
for(F=0; F<16; F++){
lcd.setCursor(F,0);
lcd.print("ESTUDIANTE
DE IDAT");
delay(1000);
lcd.clear();
}
int G= 0;
for(G=0; G<16; G++){
lcd.setCursor(G,0);
lcd.print("ELECTRONICA INDUSTRIAL");
delay(1000);
lcd.clear();
}
int H= 0;
for(H=0; H<16; H++){
lcd.setCursor(H,0);
lcd.print("DIRECCION E IDENTIDAD");
delay(1000);
lcd.clear();
}
int I = 0;
for(I=0; I<16; I++){
lcd.setCursor(I,0);
lcd.print("CAJAMARCA-PERU");
delay(1000);
lcd.clear();
}
int J = 0;
for(J=0; J<16; J++){
lcd.setCursor(J,0);
lcd.print("CEL: 9699152572");
delay(1000);
lcd.clear();
}
}
LCD PERO INICIALIZANDO LOS DOS
REGLONES QUE RRECORE
#include <LiquidCrystal.h>
/*
* RS => pin12
* E => pin11
* D4 => pin5
* D5 => pin4
* D6 => pin3
* D7 => pin2
*/
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
lcd.begin(16,2);
lcd.clear();
}
void loop() {
int P =0;
for(P=16; P>0; P--){
lcd.setCursor(P,0);
lcd.print(" JHANCARLOS");
lcd.setCursor(P,1);
lcd.print("RAMOS COTRINA");
delay(1000);
lcd.clear();
}
int D =0;
for(D=0; D<16; D++){
lcd.setCursor(D,0);
lcd.print(" JHANCARLOS");
lcd.setCursor(D,1);
lcd.print("RAMOS COTRINA");
delay(1000);
lcd.clear();
}
}
INICIAL IZANDO LOS DOS LINEAS DEL LCD
Y NO RECORRE
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
}
void loop() {
lcd.setCursor(0,0);
lcd.print(" JHANCARLOS");
lcd.setCursor(0,1);
lcd.print(" RAMOS COTRINA");
}
PANTALLA LCD QUE CAMBIA SOLA Y BIBRA
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
}
void loop() {
lcd.print(" LCD TUTORIAL");
delay(3000);
lcd.setCursor(0,1);
lcd.print(" RAMOS COTRINA");
delay(4000);
lcd.clear();
delay(1500);
lcd.blink ();
delay(3000);
lcd.noBlink();
lcd.print(" VISITA MI CANAL");
delay(3000);
lcd.clear();
lcd.print("WWW.YOUTUBE.COM");
lcd.setCursor(0,1);
lcd.print("/USER/TECNOLOGIA");
delay(5000);
lcd.clear();
lcd.print(" GRACIAS");
lcd.setCursor(0,1);
lcd.print(" MIS AMIGOS");
delay
(5000);
lcd.clear();
delay(2000);
}
Teclado
arduino mas lcd
#include
<LiquidCrystal.h> //incluimos la libreria de la LCD
#include
<Keypad.h> //Incluimos la librería
del teclado
const
byte filas = 4; //poque nuestro teclado tiene 4 filas
const
byte columnas = 4;//poque nuestro teclado tiene 4 columnas
char
teclado[filas][columnas]={ //creamos la
matriz teclado tal como es nuestro teclado
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte
pinFilas[filas]={7,6,5,4}; //en estos pines de nuestro arduino irán conectados
las filas de nuestro teclado
byte
pinColumnas[columnas] = {3,2,A5,A4};
//en estos pines de nuestro arduino irán conectados las columnas de
nuestro teclado
Keypad
keypad=Keypad(makeKeymap(teclado),pinFilas,pinColumnas,filas,columnas); // creamos el objeto keypad
LiquidCrystal
lcd(13,12,11,10,9,8); //Creamos el objeto lcd y en parentecisis van los pines
de nuestro arduino
int
a, b, suma; //Creamos la variable a y b
donde se almacenarán las teclas pulsadas y la variable suma = a+b
int
var=0; //Creamos var para eleguir los
casos y almacenar los valores en a o b
void
setup() {
lcd.begin(16,2);//Inicializamos nuestra LCD de
16x02
lcd.clear();
//Limpiamos nuestra LCD
lcd.setCursor(0,0); //Ubicamos el cursor en la
columna cero y fila cero
}
void
loop() {
char tecla = keypad.getKey(); //Obtenemos la tecla pulsada y lo asignamos
"tecla"
if(tecla != NO_KEY){
lcd.print(tecla); //Imprimimos la tecla
pulsada
var++; //var sumamos en uno cada vez q se
pulsa una tecla
tecla = tecla - 48; //pasamos de char a int
switch(var){ //iniciamos el switch con
variables var
case 1:
//caso cuando var =1
a = tecla; //almacenamos el valor de
tecla en la variable a
break;
case 2:
b = tecla;//almacenamos el valor de
tecla en la variable b
break;
}
if(tecla == -13){ //Entramos al if cuando
se pulsa la tecla "#"
suma = a+b; //asignamos la la suma de a y b a la variable
"suma"
lcd.print(suma); //imprimimos el valor de
suma
var = 0; //reinicio var
}
}
}
Para configurar arduino y comunicarse con
modulo bluetooth
/*************************
http://geekfactory.mx *******************************
*
* Sketch de prueba para modulos de bluetooth
HC-05 y HC-06. Este programa puede
* controlar el led de la tarjeta arduino a
través de la conexión bluetooth. El
* programa puede ampliarse para controlar una
mayor cantiad de salidas.
*
* ESTE SKETCH USA EL PUERTO SERIE (UART),
MISMO QUE ES UTILIZADO PARA
* LA COMUNICACIÓN USB. EL USO DE BLUETOOTH O
USB ES MUTUAMENTE EXCLUSIVO
* (NO SE PUEDEN USAR AMBOS AL MISMO TIEMPO).
*
* PARA USAR LA CONEXIÓN USB Y BLUETOOTH AL
MISMO TIEMPO ES NECESARIO EMULAR UNA
* UART POR SOFTWARE.
*
* El funcionamiento es sencillo:
*
* Enviar un caracter 'A' para encender el led
* Enviar un caracter 'a' para apagar el led
*
*/
char rxChar; // Variable para recibir datos del puerto serie
int ledpin = 13; // Pin donde se encuentra conectado el led (pin 13)
// Configurar el arduino
void setup()
{
//
Pin 13 como salida
pinMode(ledpin,
OUTPUT);
//
Comunicación serie a 9600 baudios
Serial.begin(9600);
}
// Ciclo infinito, programa principal
void loop()
{
//
Si hay datos disponibles en el buffer
if(
Serial.available() )
{
//
Leer un byte y colocarlo en variable
rxChar
= Serial.read();
//
Procesar comando de un solo byte
if( rxChar == 'A' )
{
digitalWrite(ledpin,
HIGH);
Serial.println("ON");
}
else
if ( rxChar == 'a' )
{
digitalWrite(ledpin,
LOW);
Serial.println("OFF");
}
}
//
Podemos hacer otras cosas aquí
delay(100);
}
Programa para sensor de
ultrasonido con arduino
#include <NewPing.h>
/*Aqui se configuran los pines donde
debemos conectar el sensor*/
#define TRIGGER_PIN 12
#define
ECHO_PIN 11
#define MAX_DISTANCE 200
/*Crear el objeto de la clase NewPing*/
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
//
Esperar 1 segundo entre mediciones
delay(1000);
// Obtener medicion de
tiempo de viaje del sonido y guardar en variable uS
int uS = sonar.ping_median();
//
Imprimir la distancia medida a la consola serial
Serial.print("Distancia:
");
// Calcular la distancia
con base en una constante
Serial.print(uS / US_ROUNDTRIP_CM);
Serial.println("cm");
}
Arduino con Fotoresistencia LDR
/*
* http://www.geekfactory.mx
*
* Ejemplo de medidor de luz con Arduino
utilizando una fotoresistencia LDR y
* un grupo de leds para mostrar el resultado
de las lecturas. Este sketch puede
* servir como base para otros proyectos que
requieren medicion de la intensidad
* de luz con una fotoresistencia.
*
* Mas detalles y la conexion completa para
este sketch en:
*
http://www.geekfactory.mx/tutoriales/tutoriales-arduino/tutorial-arduino-con-fotoresistencia-ldr/
*
*/
// Pin donde se conectan los leds
int pinLed1 = 2;
int pinLed2 = 3;
int pinLed3 = 4;
// Pin analogico de entrada para el LDR
int pinLDR = 0;
// Variable donde se almacena el valor
del LDR
int valorLDR = 0;
void setup()
{
// Configuramos como
salidas los pines donde se conectan los led
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3,
OUTPUT);
// Configurar el
puerto serial
Serial.begin(9600);
}
void loop()
{
// Apagar todos los leds
siempre que se inicia el ciclo
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3,
LOW);
// Guardamos el valor leido
del ADC en una variable
// El valor leido por el
ADC (voltaje) aumenta de manera directamente proporcional
// con respecto a la luz
percibida por el LDR
valorLDR=
analogRead(pinLDR);
// Devolver el valor leido
a nuestro monitor serial en el IDE de Arduino
Serial.println(valorLDR);
// Encender los leds
apropiados de acuerdo al valor de ADC
if(valorLDR > 256)
{
digitalWrite(pinLed1,
HIGH);
}
if(valorLDR > 512)
{
digitalWrite(pinLed2,
HIGH);
}
if(valorLDR > 768)
{
digitalWrite(pinLed3,
HIGH);
}
// Esperar unos
milisegundos antes de actualizar
delay(200);
}
Controlar tu arduino desde la PC mediante
comandos de texto
/**
* GeekFactory - "Construye tu propia
tecnologia"
* Distribucion de materiales para el
desarrollo e innovacion tecnologica
* www.geekfactory.mx
*
* Ejemplo de libreria Shell. Este ejemplo
permite controlar el color mostrado
* en un led RGB conectado a los pines PWM
mediante comandos de texto. El programa
* admite 3 parametros de 0 a 255 que
representan la intensidad de cada led (RGB).
*
* Example
for Shell library. This example controls the color displayed on the RGB
* led
connected to PWM pins using text commands. The program accepts 3 parameters
* in a range
from 0 to 255 that represent the intensity of each led.
*/
#include <Shell.h>
void setup()
{
// Prepare serial communication
Serial.begin(9600);
// Wait after reset or power on...
delay(1000);
// Pins to connect RGB led (PWM
outputs)
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
// Initialize command line interface
(CLI)
// We pass the function pointers to the
read and write functions that we implement below
// We can also pass a char pointer to
display a custom start message
shell_init(shell_reader, shell_writer,
0);
// Add commands to the shell
shell_register(command_rgbled,
"rgbled");
}
void loop()
{
// This should always be called to
process user input
shell_task();
}
/**
* This
function implements the rgbled command and parses the required args
* Type:
rgbled 255 255 255 to set led to maximum brigtness
* Type:
rgbled 0 0 0 to set led to minimum brightess
*/
int command_rgbled(int argc, char** argv)
{
// Variables that store parameter
values
uint8_t val_R, val_G, val_B;
// Parse RGB values and write to PWM
pins
val_R = strtol(argv[1],NULL,0);
analogWrite(3, val_R);
val_G = strtol(argv[2],NULL,0);
analogWrite(5, val_G);
val_B = strtol(argv[3],NULL,0);
analogWrite(6, val_B);
// Print the received falues to the
terminal screen
shell_printf("#RGB-COMPONENTS:%d,%d,%d\r\n",
val_R, val_G, val_B);
// Return success code
return SHELL_RET_SUCCESS;
}
/**
* Function
to read data from serial port
* Functions
to read from physical media should use this prototype:
* int
my_reader_function(char * data)
*/
int shell_reader(char * data)
{
// Wrapper for Serial.read() method
if (Serial.available()) {
*data = Serial.read();
return 1;
}
return 0;
}
/**
* Function
to write data to serial port
* Functions
to write to physical media should use this prototype:
* void
my_writer_function(char data)
*/
void shell_writer(char data)
{
// Wrapper for Serial.write() method
Serial.write(data);
}
Arduino mas un potenciómetro
const int analogPin = A0;
int
value; //variable que almacena la lectura
analógica raw
int position; //posicion
del potenciometro en tanto por ciento
void setup() {
}
void loop() {
value = analogRead(analogPin); //
realizar la lectura analógica raw
position = map(value, 0, 1023, 0,
100); // convertir a porcentaje
//...hacer lo que se quiera, con el
valor de posición medido
delay(1000);
}
Clave con contraseña
#include <LiquidCrystal.h>
#include <Key.h>
#include <Keypad.h>
const byte filas = 4;
const byte columnas = 4;
char teclado[filas][columnas]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte pinFilas[filas]={7,6,5,4};
byte pinColumnas[columnas] =
{3,2,A5,A4};
Keypad
keypad=Keypad(makeKeymap(teclado),pinFilas,pinColumnas,filas,columnas);
LiquidCrystal lcd(13,12,11,10,9,8);
int tecla;
int a,b,c,d, suma;
int c1=4,c2=6,c3=7,c4=3;
int var=0;
void setup() {
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
}
void loop() {
char tecla = keypad.getKey();
if(tecla != NO_KEY){
lcd.print(tecla);
var++;
tecla = tecla - 48;
switch(var){
case 1:
a = tecla;
break;
case 2:
b = tecla;
break;
case 3:
c = tecla;
break;
case 4:
d = tecla;
if
(a==c1&&b==c2&&c==c3&&d==c4){
lcd.setCursor(0,0);
lcd.print("clave coerrecta");
delay (5000);
lcd.clear();
}
else{
lcd.setCursor(0,0);
lcd.print("clave incorrecta");
lcd.setCursor(0,1);
lcd.print("intentalo denuevo");
delay(5000);
var = 0;
}
}
}
}
Cambiar que los números aparezcan con
arterisco
#include <LiquidCrystal.h>
#include <Key.h>
#include <Keypad.h>
const byte filas = 4;
const byte columnas = 4;
char teclado[filas][columnas]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte pinFilas[filas]={7,6,5,4};
byte pinColumnas[columnas] =
{3,2,A5,A4};
Keypad
keypad=Keypad(makeKeymap(teclado),pinFilas,pinColumnas,filas,columnas);
LiquidCrystal lcd(13,12,11,10,9,8);
int tecla;
int a,b,c,d, suma;
int c1=4,c2=6,c3=7,c4=3;
int var=0;
void setup() {
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(5,1);
}
void loop() {
char tecla = keypad.getKey();
if(tecla != NO_KEY){
lcd.print("*");
var++;
tecla = tecla - 48;
switch(var){
case 1:
a = tecla;
break;
case 2:
b = tecla;
break;
case 3:
c = tecla;
break;
case 4:
d = tecla;
if
(a==c1&&b==c2&&c==c3&&d==c4){
lcd.setCursor(0,0);
lcd.print("detectando clave");
delay (5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" clave correcta");
delay (5000);
lcd.setCursor(0,1);
lcd.print("puerta abierta");
delay (5000);
lcd.clear();
}
else{
lcd.setCursor(0,0);
lcd.print("detectando clave");
delay (5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("clave incorrecta");
lcd.setCursor(0,1);
lcd.print("intentalo denuevo");
delay(5000);
var = 0;
}
}
}
}
Comunicación sereal de un led
void setup() {
Serial.begin(9600);
pinMode(12,OUTPUT);
}
void loop() {
int a;
if(Serial.available()>0){
a=Serial.read();
}
if(a== 'n'){
x1:
digitalWrite(12,HIGH);
delay(50);
digitalWrite(12,LOW);
delay(50);
goto x1;
}
if(a == 'r'){
x2:
digitalWrite(12,LOW);
goto
x2;
}
}
Suma resta multiplicación
#include
<LiquidCrystal.h>
#include
<Keypad.h>
/*
*
alumno de idat
*
codigo A1515368
*
monbre: jhancarlos
*
apellido: ramos cotrina
*
seccion: 20402_BE
*/
const
byte filas = 4; //tengo 4 filas
const
byte columnas = 4; // tengo 4 columnas
char
keys[filas][columnas] = { // declaramos todas las filaas ylas columnas del
keypad
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte
pinFilas[filas] = {7,6,5,4}; //
declaramos las filas y salidas del
arduino y entre las del lcd para su funcionamiento
byte
pinColumnas[columnas] = {3,2,A5,A4}; // decaramos las columnas del keypad en el
arduino
Keypad
keypad = Keypad(makeKeymap(keys),pinFilas,pinColumnas,filas,columnas);
LiquidCrystal
lcd(13,12,11,10,9,8); //Creamos el objeto lcd y en parentecisis
int
a, b,c , suma, resta, multiplicacion; //Creamos la variable a y b donde se
amacenaran las teclas cunado tenga que sumar, restar, multiplicar
int
var = 0; //Creamos var para elegir los casos y almacenaran los valores en
void
setup(){
lcd.begin(16,2); // declaramos todas las
filas y columnas del lcd para inicializarse
lcd.clear(); // borramos o limpiamos la
pantalla lcd
lcd.setCursor(0,0); // declaramos las
direcciones de nuestro lcd
}
void loop(){
char tecla = keypad.getKey();
if(tecla != NO_KEY){
{
lcd.print(tecla);
tecla = tecla - 48;
var++;
switch(var)
{
case 1: // indicamos el caso 1
a = tecla; // almacena los datos en la
tecla a
break;// rompe el caso para saltar a la siguiente funcion
case 2:
// declaramos el caso dos
b = tecla;// almacena los datos en el la
tecla b
break; // rompe el caso para saltar a la siguiente funcion
}
if(tecla == 17)
{
suma = a+b; // suma los resultados de a y b
lcd.print(suma); // muestra en la pantalla
la suma
var = 0;
}
if(tecla == 18)
{
resta = a-b; // resta los resultados
de a y b
lcd.print(resta); // muestra los resultados
de la suma el la pantalla lcd
var = 0;
}
if(tecla == 19)
{
multiplicacion = a*b; // multiplica los resultados de a y b
lcd.print(multiplicacion); // muestra
en la pantalla los resultados de la
multiplicacion
var = 0;
}
}
}
}
Con arduino y bluetooth
#include<SoftwareSerial.h>
SoftwareSerial
BT (2,3);//PIN2 RECSPCION Y PIN3 TRANSMICION
char
nombre [8] = "JHAN";
char
pin[5]="1234";
char vel='4';
void setup() {
BT .begin(38400);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
/****************/
digitalWrite (13,HIGH);
delay(1000);
digitalWrite (13,LOW);
/***************/
digitalWrite (12,HIGH);
delay(2000);
BT.print("AT\r\n" );
BT.print("AT+NAME" );
BT.print(nombre);
BT.print("\r\t");
BT.print("AT+PSWD:" );
BT.print(pin);
BT.print("\r\t");
BT.print("AT+BAUD:" );
BT.print(vel);
BT.print("\r\t");
}
void loop() {
digitalWrite(13,HIGH);
delay(300);
digitalWrite(13,LOW);
delay(300);
}
Programas de arduino
Contador up con led pines 5,4,3,2
int valor;
byte pin;
void setup() {
for(pin=2;pin<6;pin++){
pinMode(pin,OUTPUT);
}
}
void loop() {
for(valor=0;valor<10;valor++){
for(pin=2;pin<6;pin++){
digitalWrite(pin,bitRead(valor,pin-2));
}
delay(1000);
}
}
Contador up dow
int valor;
byte pin;
void setup() {
for(pin=2;pin<6;pin++){
pinMode(pin,OUTPUT);
}
}
void loop() {
for(valor=0;valor<10;valor++){
for(pin=2;pin<6;pin++){
digitalWrite(pin,bitRead(valor,pin-2));
}
delay(1500);
}
for(valor=10;valor>=0;valor--){
for(pin=2;pin<6;pin++){
digitalWrite(pin,bitRead(valor,pin-2));
}
delay(1500);
}
}
Juego de luces con arduino
int luz[]={1,2,4,8,10};
byte pin,a;
void setup() {
for(pin=2;pin<9;pin++){
pinMode(pin,OUTPUT);
}
}
void loop(){
for(a=0;a<7;a++)
{
for(pin=2;pin<9;pin++)
{
digitalWrite(pin,bitRead(luz[a],pin-2));
}
delay(60);
}
}
TRASMICION DE BLUETOOTH CON
UN VALOR
#include<SoftwareSerial.h>
SoftwareSerial BT(2,3);// rx, tx
int a;
void setup() {
BT. begin(9600);
}
void loop() {
if(BT.available() > 0){
a=BT.read();
}
BT.print(a);
BT.print("HOLA");
}
SUMA
#include
<Key.h>
#include
<Keypad.h> // traer sensor de ultrasonido, DHT11,PIR
#include
<LiquidCrystal.h>
LiquidCrystal
lcd(13,12,11,10,9,8); //(RS,E,D4,D5,D6,D7)
const
byte filas = 4;
const
byte col = 4;// const fila siempre sera 4
char
teclado[filas][col] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'},
};
byte
pinFila[filas]= {7,6,5,4};
byte
pinColumna[col]= {3,2,A7,A6};
Keypad
keypad = Keypad(makeKeymap(teclado),pinFila,pinColumna,filas,col);// testea que
tecla se pulsa
char tecla;
int var = 0;
int a, b, c, d, suma;
void setup() {
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
}
void loop() {
tecla = keypad.getKey();
if(tecla != NO_KEY){
lcd.print(tecla);
tecla
= tecla -48;// esto para que me aparesca numeros enteros y no #s char
var++;
switch(var){
case 1:
a = tecla;// if(var == 1)se puede hacer,
pero es mas complejo
break;
case 2:
b = tecla;
break;
case 3:
c = tecla;
break;
case 4:
d = tecla;
break;
}
if (tecla == -13){// el valor de '*' en char,
le restamos 48
suma = a+b+c+d;
lcd.print(suma);
var = 0;
}
}
if(a==1 && b==2 && c==3
&& d==4){//1234 seria la conytraseña
//codigo
}
}
Programar
un led con bluetoothun led al 12 del arduino tx del blueto con el arduino
num,ero 2 rx y rx
del blueto con tx del arduino numero 3
del arduino
#include<SoftwareSerial.h>
SoftwareSerial BT(2,3);// rx, tx
int a;
void setup() {
BT. begin(9600);
pinMode(12,OUTPUT);
}
void loop() {
int a;
if(BT.available() > 0){
a=BT.read();
}
if(a=='3'){
digitalWrite(12,HIGH);
}
if(a=='4'){
digitalWrite(12,LOW);
}
}
Programar el
potenciómetro con A0 del arduino tx del blueto con el arduino
num,ero 2 rx y rx
del blueto con tx del arduino numero 3
del arduino
#include<SoftwareSerial.h>
SoftwareSerial BT(2,3);// rx, tx
void setup() {
BT. begin(9600);
}
void loop() {
int
a;
a=analogRead(A0);
BT.println(a);
}
PROGRAMACIÓN DE MOTOR DE PASO EN ARDUINO
#include <Stepper.h>
#define STEPS 64 // Cambiar a 100 y a 200
//Secuencia 1-3-2-4
//Stepper motor(STEPS, 8, 10, 9, 11);
Stepper motor(STEPS, 4, 6, 5, 7);
int pasos;
void setup() {
}
void loop() {
motor.setSpeed(150); // velocidad rpm
pasos = 500; // Sentido del reloj + 2000 pasos
motor.step(pasos);
delay(2000);
motor.setSpeed(150); // velocidad rpm
pasos = -500; // Sentido contrario al reloj - 2000 pasos
motor.step(pasos);
delay(2000);
}
ARDUINO UNO MAS LCD MAS KEYPAD Y MOTOR DE PASOS
#include <Stepper.h>
#define STEPS 64 // Cambiar a 100 y a 200
//Secuencia 1-3-2-4
//Stepper motor(STEPS, 8, 10, 9, 11);
Stepper motor(STEPS, 4, 6, 5, 7);
int pasos;
#include <LiquidCrystal.h>
//#include <Key.h>
#include <Keypad.h>
const byte filas = 4;
const byte columnas = 4;
char teclado[filas][columnas]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte pinFilas[filas]={3,2,A5,A4};
byte pinColumnas[columnas] = {A3,A2,A1,A0};
Keypad keypad=Keypad(makeKeymap(teclado),pinFilas,pinColumnas,filas,columnas);
LiquidCrystal lcd(13,12,11,10,9,8);
int tecla;
int a,b,c,d, suma;
int c1=4,c2=5,c3=6,c4=7;
int var=0;
void setup() {
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Inserte Clave");
lcd.setCursor(4,1);
lcd.print("Porfavor");
delay(1000);
}
void loop() {
char tecla = keypad.getKey();
if(tecla != NO_KEY){
lcd.clear();
lcd.setCursor(5,0);
//lcd.print(tecla);
lcd.print("*");
lcd.setCursor(0,1);
lcd.print("Grabando Clave");
var++;
tecla = tecla - 48;
switch(var){
case 1:
a = tecla;
break;
case 2:
b = tecla;
break;
case 3:
c = tecla;
break;
case 4:
d = tecla;
if (a==c1&&b==c2&&c==c3&&d==c4){
lcd.setCursor(0,0);
lcd.print("Detectando Clave");
lcd.setCursor(1,1);
lcd.print("Clave Grabada");
delay (5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Clave Correcta");
delay (5000);
lcd.setCursor(1,1);
lcd.print("Puerta Abierta");
motor.setSpeed(150); // velocidad rpm
pasos = 500; // Sentido del reloj + 2000 pasos
motor.step(pasos);
delay(4000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print(" Ten Cuidado");
delay (5000);
lcd.setCursor(1,1);
lcd.print("Cerrando Puerta");
motor.setSpeed(150); // velocidad rpm
pasos = -500; // Sentido contrario al reloj - 2000 pasos
motor.step(pasos);
delay(2000);
var = 0;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Inserte Clave");
lcd.setCursor(4,1);
lcd.print("Porfavor");
}
else{
lcd.setCursor(0,0);
lcd.print("Detectando Clave");
lcd.setCursor(1,1);
lcd.print("Clave Grabada");
delay (5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Clave Incorrecta");
lcd.setCursor(0,1);
lcd.print("Intentalo Denuevo");
delay(5000);
var = 0;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Inserte Clave");
lcd.setCursor(4,1);
lcd.print("Porfavor");
}
}
}
}
PROGRAMACIÓN DE MOTOR DE PASO EN ARDUINO
#include <Stepper.h>
#define STEPS 64 // Cambiar a 100 y a 200
//Secuencia 1-3-2-4
//Stepper motor(STEPS, 8, 10, 9, 11);
Stepper motor(STEPS, 4, 6, 5, 7);
int pasos;
void setup() {
}
void loop() {
motor.setSpeed(150); // velocidad rpm
pasos = 500; // Sentido del reloj + 2000 pasos
motor.step(pasos);
delay(2000);
motor.setSpeed(150); // velocidad rpm
pasos = -500; // Sentido contrario al reloj - 2000 pasos
motor.step(pasos);
delay(2000);
}
ARDUINO UNO MAS LCD MAS KEYPAD Y MOTOR DE PASOS
#include <Stepper.h>
#define STEPS 64 // Cambiar a 100 y a 200
//Secuencia 1-3-2-4
//Stepper motor(STEPS, 8, 10, 9, 11);
Stepper motor(STEPS, 4, 6, 5, 7);
int pasos;
#include <LiquidCrystal.h>
//#include <Key.h>
#include <Keypad.h>
const byte filas = 4;
const byte columnas = 4;
char teclado[filas][columnas]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte pinFilas[filas]={3,2,A5,A4};
byte pinColumnas[columnas] = {A3,A2,A1,A0};
Keypad keypad=Keypad(makeKeymap(teclado),pinFilas,pinColumnas,filas,columnas);
LiquidCrystal lcd(13,12,11,10,9,8);
int tecla;
int a,b,c,d, suma;
int c1=4,c2=5,c3=6,c4=7;
int var=0;
void setup() {
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Inserte Clave");
lcd.setCursor(4,1);
lcd.print("Porfavor");
delay(1000);
}
void loop() {
char tecla = keypad.getKey();
if(tecla != NO_KEY){
lcd.clear();
lcd.setCursor(5,0);
//lcd.print(tecla);
lcd.print("*");
lcd.setCursor(0,1);
lcd.print("Grabando Clave");
var++;
tecla = tecla - 48;
switch(var){
case 1:
a = tecla;
break;
case 2:
b = tecla;
break;
case 3:
c = tecla;
break;
case 4:
d = tecla;
if (a==c1&&b==c2&&c==c3&&d==c4){
lcd.setCursor(0,0);
lcd.print("Detectando Clave");
lcd.setCursor(1,1);
lcd.print("Clave Grabada");
delay (5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Clave Correcta");
delay (5000);
lcd.setCursor(1,1);
lcd.print("Puerta Abierta");
motor.setSpeed(150); // velocidad rpm
pasos = 500; // Sentido del reloj + 2000 pasos
motor.step(pasos);
delay(4000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print(" Ten Cuidado");
delay (5000);
lcd.setCursor(1,1);
lcd.print("Cerrando Puerta");
motor.setSpeed(150); // velocidad rpm
pasos = -500; // Sentido contrario al reloj - 2000 pasos
motor.step(pasos);
delay(2000);
var = 0;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Inserte Clave");
lcd.setCursor(4,1);
lcd.print("Porfavor");
}
else{
lcd.setCursor(0,0);
lcd.print("Detectando Clave");
lcd.setCursor(1,1);
lcd.print("Clave Grabada");
delay (5000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Clave Incorrecta");
lcd.setCursor(0,1);
lcd.print("Intentalo Denuevo");
delay(5000);
var = 0;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Inserte Clave");
lcd.setCursor(4,1);
lcd.print("Porfavor");
}
}
}
}
AUTOR : JHANCARLOS RAMOS COTRINA
Suscribirse a:
Entradas (Atom)