Sie sind auf Seite 1von 21

SECUANCIA DE LEDS CON PULSADOR

En este programa hara la secuencia del encendido de una serie de leds,al presionar el pushbutton hara una secuancia,
al volver a presionar hara otra y asi sucesivamente hasta terminar la secuancia (consta de 5 secuancias diferentes).

CIRCUITO

int saltar=0;
int boton=0;
int led1=22;
int led2=23;
int led3=24;
void setup(){
pinMode(boton,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}

//--------------------------------void secuencia3(){
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,HIGH);
delay(300);
}
//----------------------------void secuencia4(){
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,HIGH);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
delay(300);
}
//---------------------void secuencia5(){
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,HIGH);
delay(300);
digitalWrite(led2,LOW);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
}
//Fin del programa

void loop(){
if(digitalRead(boton)==HIGH){
saltar++;
if(saltar>5){
saltar=0;
}
while(digitalRead(boton)==HIGH){}
}
if(saltar==0){
secuencia1();
}
if(saltar==1){
secuencia2();
}
if(saltar==2){
secuencia3();
}
if(saltar==3){
secuencia4();
}
if(saltar==4){
secuencia5();
}
if(saltar==5){
secuencia1();
}
}
//----------------------------------void secuencia1(){
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,HIGH);
delay(300);
digitalWrite(led2,LOW);
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
delay(300);
}
//--------------------------------void secuencia2(){
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,LOW);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,LOW);
digitalWrite(led1,LOW);
digitalWrite(led3,HIGH);
delay(300);
}

//--------------------------------void secuencia3(){
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,HIGH);
delay(300);
}
//----------------------------void secuencia4(){
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,HIGH);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
delay(300);
}
//---------------------void secuencia5(){
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
digitalWrite(led3,HIGH);
delay(300);
digitalWrite(led2,LOW);
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
delay(300);
}
//Fin del programa

CONCLUSION
A que los leds tienes una secuancia al presionar el pushbutton al volver a presionarlo cambia de secuancia,
esto es con los puertos digitales son configurando quienes son E/S.

SECUANCIA DE LEDS CON 2 PULSADORES


En este programa hara la secuencia del encendido de una serie de leds,al presionar 2 pushbutton hara una
secuancia diferente en total son 4 secuancias.

CIRCUITO

int led1=22;
int led2=23;
int led3=24;
int boton1=0;
int boton2=1;
void setup (){
pinMode(boton1,INPUT);
pinMode(boton2,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}

void loop(){
if((digitalRead(boton1)==LOW)&&(digitalRead(boton2)==LOW)){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(3000);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
delay(3000);
}
//---------------------------------------------------------------------if((digitalRead(boton1)==LOW)&&(digitalRead(boton2)==HIGH)){
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
delay(3000);
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
delay(3000);
}
//-------------------------------------------------------------------if((digitalRead(boton1)==HIGH)&&(digitalRead(boton2)==LOW)){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
delay(3000);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(3000);
}
//------------------------------------------------------------------if((digitalRead(boton1)==HIGH)&&(digitalRead(boton2)==HIGH)){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(300);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
delay(300);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
delay(300);
}
}
//Fin del programa

CONCLUSION
.
Si se preionan los 2 al mismo tiempo habra una secuancia,y que solo al cumplirse la condicion de que si estan
en alto o bajo,enciendan.

PUERTA ELECTRICA
Este programa hara que se active la puerta derecha,izquierda,ambas o ninguna,esto es por que al entrar solo se
necesita que una de ellas este abierta y la otra no a menos que la otra se cierre,esto esta implementado en sistemas
.
de seguridad de empresas.

CIRCUITO

int a=22;
int b=23;
void setup(){
pinMode(a,OUTPUT);
pinMode(b,OUTPUT);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
}

void loop(){
if(digitalRead(A0)==HIGH){
digitalWrite(a,HIGH);
}
else{
digitalWrite(a,LOW);
}
while(digitalRead(A0)==HIGH){
digitalWrite(b,LOW);
}

if(digitalRead(A1)==HIGH){
digitalWrite(b,HIGH);
}
else{
digitalWrite(b,LOW);
}
while(digitalRead(A1)==HIGH){
digitalWrite(a,LOW);
}
//Fin del programa

CONCLUSION
Esta forma de seguridad se ha implementado mucho en diferentes ramas de la ingnieria ya que es
importante mantener un area sellada ya que asi es el proceso que lo requiera,esta es en base a si
se cumple la condicion de que si una puerta esta abierta la otra se cierre.

CONTROL DE INTENSIDAD LUMINOSA DE UN LED CON


UN POTENCIOMETRO
Este programa controla la intensidad de un led por medio de un potenciometro,esto se base en el divisor de voltaje,.
que entra en el puerto analogico A0,y el valor lo visualiza en el monitor serial.

CIRCUITO

int Pot=0;
int Led=22;
int Val=0;
void setup()
{
pinMode(Led,OUTPUT);
Serial.begin(9600); //Inicializa el mdulo Serial.
}
void loop()
{
Val=analogRead(Pot)/4; //LEER El valor de tension
Serial.print("Valor");
Serial.println(Val);
delay(1000);
}

CONCLUSION
//Fin del programa
Para el control de intensidad de un led solo basta con conectar un puerto analogico y un pwm para que vaya
variando la intensidad y el valor se visualiza en el monitor serial.

CONTROL DE TEMPERATURA CON LM35


Este programa visualizara la temperatura en el monitor serial,esto es en base a un sensor de temperatura,que
ira sensando la temperatura ,pero esta. sera controlada en dichos intervalos para que se active un ventilador
para que al disminuir su temperatura se active una lampara,resistencias,etc,para elevar la temperatura y
estabilizarse.

CIRCUITO

int sensor=0;
int disminuir=22;
int aumentar=23;

void setup(){
pinMode(sensor,INPUT);
pinMode(disminuir,OUTPUT);
pinMode(aumentar,OUTPUT);
Serial.begin(9600);

void loop(){
float C=0;
C=(5*analogRead(sensor)*100)/1024;
Serial.println("Temperatura: ");
Serial.println (C);
Serial.println ("GRADOS");
delay(500);
if (C>23)
digitalWrite(disminuir,HIGH);
else{digitalWrite(disminuir,LOW);}

if (C<23)
digitalWrite(aumentar,HIGH);
else{digitalWrite(aumentar,LOW);}
//Fin del programa

CONCLUSION

Para el control de temperatura solo se necesitan 2 elementos para aumentar y disminuir la temperatura
del lugar que se desea,solo es habilitando 2 salidas digitales e implementado el control como queramos.

WHILE Y FOR
Solo en este programa se vera como funciona el while y el for,dentro de un ciclo.
.

int led=12;
int i=0;
void setup(){
pinMode(led,OUTPUT);
}
void loop()
{
while(i<=255)
{
analogWrite(led,i);
delay(1000);i++;
}
while(i>=0){
analogWrite(led,i);
delay(1000);
i--;
}
for(i=0; i<=255; i++){
analogWrite(led,i);
delay(1000);
i++;
}
}

CONCLUSION
Para el manejo del while y for tienn la misma carcateristica de que funcionan como ciclos,pero a
comparacion del while al inicio tiene problemas,el mas recomendable seria el for,ya que al iniciar
si funciona apropiadamenta ,cuando se termina el ciclo el led parpadea normalmente y no se ven
cambios erroneos,pero el while si.

CONTROL DE MOTOR CON TECLADO


Para el control del motor con el teclado de la PC se visualizara en el monitor serial y solo se controlara con las
letras "A","P","I" y "D".
- "A" encendido del motor
- "P" para del motor
- "I" movimiento hacia la izquierda
- "D" movimiento hacia la derecha

int Derecha= 22;


int Izquierda= 23;
int led1= 24;
int incomingByte;

void setup() {
Serial.begin(9600);
pinMode(Derecha, OUTPUT);
pinMode(Izquierda, OUTPUT);
pinMode(led1, OUTPUT);
}

CIRCUITO

void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte == 'A') {
digitalWrite(Izquierda, HIGH);
}
if (incomingByte == 'I') {
digitalWrite(Izquierda, HIGH);
}
if (incomingByte == 'D'){
digitalWrite(Derecha, HIGH);

}
if (incomingByte=='P'){
digitalWrite(led1, LOW);
digitalWrite(Derecha, LOW);
digitalWrite(Izquierda, LOW);
}
}

CONCLUSION
Para el control de motor con el teclado solo hay que teclear el caracter para activar el motor,pararlo,
ir a la derecha y izquierda y el led visualiza el estado del motor,si se encuentra activo a apagado.

CONTADOR
Se creara un programa para ir contando cada vez que se valla pulsando con un pushbutton,esto se visualizara en
el monitor serial.

CIRCUITO

int Pulsador=22;
int Contador=23;

void setup()
{
pinMode(13,OUTPUT);
Serial.begin(9600); //Inicializa el mdulo Serial. (velocidad maxima de comunicacion)
}

void loop(){
if(digitalRead(Pulsador)==HIGH)
{
digitalWrite(13,HIGH);
Serial.print("Contador:");
Serial.println(Contador);
delay(500);
Contador++;
}
}

CONCLUSION
Aqui solo contara cuando el pulsador este activo,este valor lo va a ir incrementando hasta el infinito.

CAMINADORA
En este programa se hara una caminadora que se controlara con el puerto serial y se visualizara
en el monitor serial,contara el numero de vueltas y calculara la distancia recorrida,con la letra "A"
se activara la caminadora,"P" se parara,"I" ira a la izquierda y "D" a la derecha.

CIRCUITO

int vueltas=0;
float distancia=0;
int incomingByte;

void setup()
{
pinMode (22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25,INPUT);
Serial.begin (9600);
}

void loop(){
if (digitalRead(25)==HIGH)
{digitalWrite(22,HIGH);
{
vueltas++;
Serial.print("vueltas:");
Serial.println(vueltas);
distancia=vueltas*(3.1416*3.5);
Serial.print("distancia:");
Serial.print(distancia);
Serial.println("cm");
delay(1000);
}
}
else
{
digitalWrite(25,LOW);
}
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte == 'A') {
digitalWrite(22, HIGH);
}
if (incomingByte == 'I') {
digitalWrite(23, HIGH);
}
if (incomingByte == 'D'){
digitalWrite(24, HIGH);
}
if (incomingByte=='P'){
digitalWrite(22, LOW);
digitalWrite(23, LOW);
digitalWrite(24, LOW);
}
}

CONCLUSION
El sensor va a ir detectando las vueltas que vaya teniendo,esto guardara el valor y lo visualizara en el
monitor serial,y tambien se controlara el motor con el teclado de la PC.

ARRANQUE Y PARO DE UN MOTOR DC


Ahora se vera como arrancar un motor dcd de la manera mas sencilla con solo declarar con los puertos digitales
como salidas y entradas.

CIRCUITO

void setup()
{
pinMode (24,OUTPUT);
pinMode (22,INPUT);
pinMode (23, INPUT);
}

}
void loop(){
if(digitalRead(22)==HIGH)
digitalWrite(24, HIGH);
if(digitalRead(23)==HIGH)
digitalWrite(24,LOW);
}

CONCLUSION

Al pulsar un boton solo activara el sentido del motor hacia un lado,y el otro a hacia el contrario,
solo mediante los 2 botones.

Das könnte Ihnen auch gefallen