Sono completamente nuovo nel mondo dei microcontrollori PIC e dell'ingegneria elettrica, quindi per favore andate piano :)
Ad ogni modo, sono riuscito a programmare il mio PIC 16f627 per accendere tre LED quando si preme il pulsante (pulsante di attivazione) e avviare una sequenza di spegnimento (praticamente ogni LED si spegne uno dopo l'altro con un ritardo di 5 secondi in mezzo) quando un altro pulsante è premuto (pulsante di ripristino). Ho provato questo su una scheda di programmazione / sperimentazione PIC K8048 di Velleman. I PIN RA0 e RA2 sono gli ingressi per i pulsanti di trigger e reset rispettivamente mentre i pin RB0, RB1 e RB2 sono i pin di uscita per i LED.
Lavorare con la scheda di sperimentazione è grandioso, ma voglio spostarlo su un circuito reale. Il problema è che non ho idea da dove cominciare. Ho comprato 3 LED (3,3 volt ciascuno), alcuni pulsanti e filo e ho costruito il seguente circuito:
(scusa per l'orrendo schema)
Nel circuito che ho costruito, ho prima provato per vedere se i LED avrebbero funzionato con 3 batterie AA da 1,5 Volt e funzionavano bene, quindi ho pensato che i resistori non sarebbero stati necessari.
Questo non funziona, tuttavia, e sono totalmente perso. Per riferimento, ecco il mio codice per il PIC. È scritto in C usando MikroC. Funziona sul pannello di sperimentazione, quindi non penso che sia un problema
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;
}
}
}
Qualsiasi aiuto sarebbe molto apprezzato. Grazie!