Je suis complètement nouveau dans le monde des microcontrôleurs PIC et de l'électrotechnique, alors allez-y doucement :)
Quoi qu'il en soit, j'ai réussi à programmer mon PIC 16f627 pour allumer trois LED lorsque le bouton-poussoir (bouton de déclenchement) est enfoncé et démarrer une séquence d'arrêt (fondamentalement, chaque LED s'éteint l'une après l'autre avec un délai de 5 secondes entre les deux) lorsqu'un autre bouton-poussoir est enfoncée (bouton de réinitialisation). J'ai testé cela sur une carte de programmation / expérimentation PIC Velleman K8048. Les broches RA0 et RA2 sont respectivement les entrées des boutons-poussoirs de déclenchement et de réinitialisation, tandis que les broches RB0, RB1 et RB2 sont les broches de sortie des DEL.
Travailler avec la carte d'expérimentation est génial, mais je veux déplacer cela vers un circuit réel. Le problème est que je ne sais pas par où commencer. J'ai acheté 3 LED (3,3 Volts chacune), des boutons poussoirs et du fil et j'ai construit le circuit suivant:
(désolé pour le schéma horrible)
Dans le circuit que j'ai construit, j'ai d'abord testé pour voir si les LED fonctionneraient avec 3 piles AA de 1,5 Volt et elles fonctionnaient bien, donc j'ai pensé que des résistances ne seraient pas nécessaires.
Cela ne fonctionne pas, cependant, et je suis totalement perdu. Pour référence, voici mon code pour le PIC. Son écrit en C en utilisant MikroC. Cela fonctionne sur le plateau d'expérimentation donc je ne pense pas que ce soit un problème
void main() {
TRISB.RB0 = 0;
TRISB.RB1 = 0;
TRISB.RB2 = 0;
PORTB.RB0 = 0;
PORTB.RB1 = 0;
PORTB.RB2 = 0;
CMCON = 0x07;
TRISA = 255;
for(;;){
if(PORTA.RA0 == 1 && PORTB.RB0 == 1 && PORTB.RB1 == 1 && PORTB.RB2 == 1){
delay_ms(5000);
PORTB.RB0 = 0;
delay_ms(5000);
PORTB.RB1 = 0;
delay_ms(5000);
PORTB.RB2 = 0;
}
if(PORTA.RA2 == 1){
PORTB.RB0 = 1;
PORTB.RB1 = 1;
PORTB.RB2 = 1;
}
}
}
Toute aide serait grandement appréciée. Merci!