Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*Este esquema se convierte lee la entrada de serie y la usa para ajustar los pines
  2.   de un cambio de registro 74HC595.
  3.  
  4.   * 74HC595 registro de desplazamiento conectado a los pines 2, 3 y 4 de la Arduino,
  5.   como se detalla a continuación.
  6.  */
  7.  
  8. //Pin conectado a el  (ST_CP) del 74HC595
  9. const int latchPin = 8;
  10. //Pin conectado al pin de reloj (SH_CP) del 74HC595
  11. const int clockPin = 12;
  12. ////Pin conectado a dato de entrada (DS) del 74HC595
  13. const int dataPin = 11;
  14.  
  15. void setup() {
  16.   //colocar los pines  salida
  17.   pinMode(latchPin, OUTPUT);
  18.   pinMode(dataPin, OUTPUT);  
  19.   pinMode(clockPin, OUTPUT);
  20.  
  21.   Serial.begin(9600);
  22.   Serial.println("reiniciar");//lo utilizamos basicamente para tener
  23.                               // informacion que el programa empezo
  24. }
  25.  
  26. void loop() {
  27.   if (Serial.available() > 0) {
  28.     // ASCII '0 'al '9' son caracteres
  29.      // Representado por los 48 a  57.
  30.      // Por lo que si el usuario escribe un número del 0 al 9 en formato ASCII,
  31.      // Se puede restar 48 para obtener el valor real:
  32.     int bitToSet = Serial.read() -48;
  33.     Serial.println(bitToSet,DEC);
  34.  
  35.   // Escribir en el registro de desplazamiento  el bit correcto en alto:
  36.     EscribirRegistro(bitToSet, HIGH);
  37.   }
  38. }
  39.  
  40. //Este método envía bits para el registro de desplazamiento:
  41.  
  42. void EscribirRegistro(int CualPin, int CualEstado) {
  43.    // Los bits que desea enviar
  44.   byte bitsToSend = 0;
  45.  
  46.   // Desactivar la salida para que los pernos no se encienden
  47.   digitalWrite(latchPin, LOW);
  48.  
  49.   //Activar el bit de próximo en bitsToSend:
  50.   bitWrite(bitsToSend, CualPin, CualEstado);
  51.  
  52.   // desplazar los bits de salida:
  53.   shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend);
  54.  
  55.     // conectar la salida de modo que el LED se enciende:
  56.   digitalWrite(latchPin, HIGH);
  57.  
  58. }