Étape 3: Le CODE
Pour les utilisateurs de PIC18f...
J’ai utilisé du compilateur Hi-Tech.
#include
void serialwrite (données unsigned char) \\ usart envoyer code octet
{
TXREG = data ;
while(TXIF==0) ;
}
Sub main() \\main fonction
{
TXSTA = 0 X 20 ; \\transmit enable
RCSTA = 0X90 ; \\serial sur
SPBRG = 129 ; Vitesse de transmission \\9600
BRGH = 1 ; Vitesse de \\high à réduire les erreurs
TRISC7 = 1 ; \\rx en entrée
TRISC6 = 0 ; \\tx en sortie
TRISD0 = 1 ; \\ épingles la touche entrée
TRISD1 = 1 ;
TRISD2 = 1 ;
TRISD3 = 1 ;
while(1)
{
if(RD0==0) {\\ touche 1
while(RD0==0) ; boucle de \\debounce
serialwrite('1') ; \\send 1
}
{if(RD1==0)}
while(RD1==0) ;
serialwrite('2') ;
}
{if(RD2==0)}
while(RD2==0) ;
serialwrite('3') ;
}
{if(RD3==0)}
while(RD3==0) ;
serialwrite('4') ;
}
}
}
Pour les utilisateurs de l’ARDUINO...
const int buttonpin1 = 13 ; \\ buttonpins
const int buttonpin2 = 12 ;
const int buttonpin3 = 11 ;
const int buttonpin4 = 10 ;
void setup()
{
pinMode (buttonpin1, entrée) ; \\ rendant toutes les goupilles de touche comme entrée
pinMode (buttonpin2, entrée) ;
pinMode (buttonpin3, entrée) ;
pinMode (buttonpin4, entrée) ;
Serial.Begin(9600) ; \\ allumez série à 9600 Baud
}
void loop()
{
Si (digitalRead(buttonpin1)==LOW) \\ vérifier si 1 touche
{
while(digitalRead(buttonpin1)==Low) ; \\if alors attendre sa est libéré
Serial.Write("1") ; un \\send via le port série
}
Si (digitalRead(buttonpin2)==LOW)
{
while(digitalRead(buttonpin2)==Low) ;
Serial.Write("2") ;
}
Si (digitalRead(buttonpin3)==LOW)
{
while(digitalRead(buttonpin3)==Low) ;
Serial.Write("3") ;
}
Si (digitalRead(buttonpin4)==LOW)
{
while(digitalRead(buttonpin4)==Low) ;
Serial.Write("4") ;
}
Delay(5) ;
}