sábado, 21 de enero de 2017

USO DE LA PLACA ARDUINO UNO SIMULACION EN PROTEUS 8

PRUEBA 74HC595 CON MATRIZ DE LEDS SIMULADO EN PROTEUS
Primero diseñamos el circuito en Proteus en este caso se uso Proteus 8







En la opcion codigo de fuente en Proteus colocamos este codigo:

/*-------------------------------------*/
/*  PRUEBA 74HC595 MATRIZ DE LEDS      |
/*  AUTOR: FORTUNATO SERRANO LANCH     |
/*-------------------------------------|*/

const int latch = 8;  // Pin conectado al Pin 12 del 74HC595 //
const int Dato  = 9;  // Pin conectado al Pin 14 del 74HC595 //
const int clock = 10; // Pin conectado al Pin 11 del 74HC595 //
int i =0,ii=0,j=0,jj=0,pto=2,pto11=12;  //Declaracion de variables de apoyo
                   
const byte letraA[10] = { //con estos datos se forma la letra A de una matriz de 8X8
                0b10000011,
                0b00111001,
                0b00111001,
                0b00000001,
                0b00000001,
                0b00111001,
                0b00111001,
                0b00111001,
                0b00000000,
                0b00000000              
};
                   
void setup() {
  Serial.begin(9600);
  pinMode(latch, OUTPUT); //Declaramos los pines que vamos a usar como salida
  pinMode(clock, OUTPUT);
  pinMode(Dato, OUTPUT);
  pinMode(0,OUTPUT); //Con estos pines estaremos controlando el orden de ensendido y apagado
  pinMode(1,OUTPUT);//de los transistores
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);

   for(ii=0;ii<=12;ii++){digitalWrite(ii,LOW);} //mandamos datos al registro para quitar la basura
      digitalWrite(latch, LOW);
      shiftOut(Dato, clock, MSBFIRST, 0);
      digitalWrite(latch, HIGH);

}

void loop() {

  for (i=0;i<8;i++) {    //el for llega a 8 ya que solo tenemos una matriz de 8X8                        
        digitalWrite(latch, LOW);//colocamos el latch en bajo para que no muestre informacion
        hiftOut(Dato, clock, MSBFIRST,letraA[i]);//Esta funcion nos ahorra la forma de enviar los datos
         digitalWrite(latch, HIGH);//Colocamos latch en alto para que nos muestre el dato enviado
                   
     if(pto11>=11){pto=8;
                digitalWrite(pto11,HIGH);
                 digitalWrite(pto11,LOW);
                  pto11--; //Esta variable nos permite controlar el transistor que queremos que prenda
                        }
                    else{
                             digitalWrite(pto,HIGH);//En este espacio mandamos prender y apagar los
                             digitalWrite(pto,LOW);//transistores
                        }
                        pto--;
                }
        pto11=12;
             
}






UNA VEZ COMPILADO EL PROGRAMA CORREMOS LA SIMULACIÓN EL RESULTADO SE MUESTRA A CONTINUACIÓN:




PROXIMAMENTE CORRIMIENTO CON 4 MATRICES DE 8x8 PARA DESPLEGAR MENSAJES INFINITOS












1 comentario:

  1. HOLA BUENAS TARDES NOCHE DEPENDIENDO QUE VEA MI COMENTARIO LO QUE PASA ES QUE SEGUI LOS PASOS DEL CODIGO QUE ME DIJISTE Y NO ME SALE NO SE SI TU ME PUEDAS AYUDAR EN PASAR TU SIMULADOR Y EL CODIGO PARA PODERLO CORRER ESPERO Y ME AYUDE PARA SALVAR EL CUATRI JEJE

    ResponderEliminar