miércoles, 18 de octubre de 2017

Bitácora: Secuencia de números


Para la secuencia de números o cuenta regresiva se usa el siguiente código:

int boton = 2;
void setup()
{
  for(int i=3;i<=10;i++)
    pinMode(i, OUTPUT) ; //display 7 segmentos
  pinMode( boton  , INPUT) ; //botón  como entrada
}
void display(int a,int b, int c, int d, int e, int f, int g, int punto)
{
  digitalWrite(3,a);  
  digitalWrite(4,b);  
  digitalWrite(5,c);  
  digitalWrite(6,d);  
  digitalWrite(7,e);  
  digitalWrite(8,f);  
  digitalWrite(9,g);  
  digitalWrite(10,punto);  
}
void loop()
{
  display(0,0,0,0,0,0,0,1);
  int valor = digitalRead(boton) ; // leemos el valor de boton, si está presionado será HIGH y sino será LOW.
  if(valor==HIGH)//si el boton está enviando voltaje alto al pin del Arduino  
  {
    //cuenta regresiva
    display(0,0,0,1,1,0,0,0);//9
    delay(2000);//el programa espera 5 segundos
    display(0,0,0,0,0,0,0,0);//8
    delay(2000);//el programa espera 5 segundos
    display(0,0,0,1,1,1,1,0);//7
    delay(2000);//el programa espera 5 segundos
     display(0,1,0,0,0,0,0,0);//6
    delay(2000);//el programa espera 5 segundos
     display(0,1,0,0,1,0,0,0);//5
    delay(2000);//el programa espera 5 segundos
     display(1,0,0,1,1,0,0,0);//4
    delay(2000);//el programa espera 5 segundos
     display(0,0,0,0,1,1,0,0);//3
    delay(2000);//el programa espera 5 segundos
     display(0,0,1,0,0,1,0,0);//2
    delay(2000);//el programa espera 5 segundos
     display(1,0,0,1,1,1,1,0);//1
    delay(2000);//el programa espera 5 segundos
  }  display(0,0,0,0,0,0,1,0);//0
    delay(2000);//el programa espera 5 segundos
}

Para que los números vayan disminuyendo en el display lo único que debes hacer es anular el paso de energía a los pines, para formar el número, en mi caso se usa 1 para anular y 0 para dejar pasar energía a los pines.
Los pines enumerados en la sección de " digitalWrite", pero si no entiendes asi aqui esta una imagen de como estan los pines, deacuerdo a esta imagen solo cambias un 0 por un 1 para que tengas de resultado un número del 9 al 0.


martes, 3 de octubre de 2017

Bitácora Display 7 Segmentos

En esta clase, vimos como funciona un display de 7 segmentos, como se puede ver cada pata del display tiene conectarlos entre si, este se lo conecta al protoboard, luego con cables macho a macho, conectas el pin 3 con el pin 8 del mismo display en el protoboard, luego al arduino se le conecta en el pin 6 el pin 1 del display, el 5 al 2, el 4 al 4, el 5 al 9, el 6 al 3, el 7 al 2, 9 al 7, el 10 al 8, el 8 y 3 ya estan conectados entre si, para dar energia a todo se conecta un cable del 5v al positivo del protoboard y GND al negativo del protoboard.

Este tiene el siguiente codigo que funciona para que encienda con un numero el display.
void setup(){
  for(int i=2;i<=7;i++)
  {
    pinMode(i,OUTPUT);//salidas
    digitalWrite(i,LOW);//encendidos
  }
}
void loop(){
   
}

en este caso funcionaria asi:

apagado

encendido
Tambien se puede hacer que en vez de que salga el 8, salga un 0, esto pasa cambiando solo un numero en el código.
  for(int i=2;i<=7;i++)
en esta parte del código cambias el 7 por un 9
  for(int i=2;i<=9;i++)
esto queda asi al final