miércoles, 1 de mayo de 2013

contador con Pinguino pic18F2550 en Fedora con CDC

Aqui se muestra el esquema de conexionado para usar una LCD con Pinguino y envio de datos por CDC en una máquina Fedora 18 Y aqui el video donde se muestra como se importa el modulo de pinguino (de JP Mandon) para Fritzing Fotografia del pinguino funcionando
ImportandoModulo Pinguino en Fritzing por maigke
/*----------------------------------------------------- 
Author:  --<>
Date: Wed Apr 24 00:00:18 2013
Description:

-----------------------------------------------------*/
    u8 n=0;
    unsigned char contador=0;
    unsigned char buttonstate=0;
    
void setup() {
    //run once:
    //lcd(8, 9, 1, 2, 3, 4, 0, 0, 0, 0);//modo 4 bits-relacion pines usados 
    /*
    Manejo de LCD con Pingino
    lcd.pins(pinRS, pinE, pinD4, pinD5, pinD6, pinD7, 0, 0, 0, 0);
        */
    
    lcd.pins(8,9,4,5,6,7,0,0,0,0);
    
    //Numero de columnas = 16 y renglones 2
    lcd.begin(16, 2);
    pinMode(12,INPUT);
    }

void loop() {



    digitalWrite(13, HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    lcd.setCursor(1,1);
    lcd.print("Rally Meca");
    buttonstate = digitalRead(12);
    if(buttonstate == LOW)
    {
        digitalWrite(13,LOW); //para pruebas
        delay(500);
        contador++;
        lcd.setCursor(14,0);
        lcd.printf("%d",contador);
        if(contador < 7)
        {
                switch(contador)
                {
                    case 1:
                        lcd.setCursor(5,0);
                        lcd.print("a"); 
                        CDC.print("a");
                        break;
                   
                    case 2:
                        lcd.setCursor(5,0);
                        lcd.print("b");  
                        CDC.print("b");
                        break;
                    case 3:
                        lcd.setCursor(5,0);
                        lcd.print("c");  
                        CDC.print("c");
                        break;
                    case 4:
                        lcd.setCursor(5,0);
                        lcd.print("d");  
                        CDC.print("d");
                        break;
                    case 5:
                        lcd.setCursor(5,0);
                        lcd.print("e");  
                        CDC.print("e");
                        break;
                    case 6:
                        lcd.setCursor(5,0);
                        lcd.print("f");  
                        CDC.print("f");
                        break;
                    default:
                        lcd.clear();
                        //contador=0;
                }
               digitalWrite(13,HIGH);
               lcd.setCursor(14,0);
               lcd.printf("%d",contador);
               delay(500);
         }
         else
            {contador = 0;}       
    }
    
    }