Ich bin völlig neu in der Welt der PIC-Mikrocontroller und der Elektrotechnik.
Wie auch immer, ich habe es geschafft, meinen PIC 16f627 so zu programmieren, dass er drei LEDs einschaltet, wenn der Druckknopf (Auslösetaste) gedrückt wird, und eine Abschaltsequenz startet (im Grunde schaltet sich jede LED mit einer Verzögerung von 5 Sekunden nacheinander aus), wenn ein anderer Druckknopf gedrückt wird gedrückt (Reset-Taste). Ich habe dies auf einem K8048 PIC Programmer / Experimentation Board von Velleman getestet. Die PINs RA0 und RA2 sind die Eingänge für die Trigger- bzw. Reset-Tasten, während die Pins RB0, RB1 und RB2 die Ausgangspins für die LEDs sind.
Die Arbeit mit dem Experimentierboard ist großartig, aber ich möchte dies auf eine tatsächliche Schaltung verschieben. Das Problem ist, ich habe keine Ahnung, wo ich anfangen soll. Ich habe 3 LEDs (jeweils 3,3 Volt), einige Drucktasten und Kabel gekauft und die folgende Schaltung aufgebaut:
(Entschuldigung für den schrecklichen Schaltplan)
In der von mir konstruierten Schaltung habe ich zuerst getestet, ob die LEDs mit 3 1,5-Volt-AA-Batterien funktionieren würden, und sie funktionierten einwandfrei, sodass ich dachte, dass keine Widerstände erforderlich wären.
Dies funktioniert jedoch nicht und ich bin total verloren. Als Referenz ist hier mein Code für den PIC. Es ist in C mit MikroC geschrieben. Es funktioniert auf dem Experimentierbrett, also denke ich nicht, dass es ein Problem ist
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;
}
}
}
Jede Hilfe wäre sehr dankbar. Vielen Dank!