tutto l'opposto di quello che gli ho detto di fare
int anodo = 9;
int ledg = 8;
void setup() {
pinMode(anodo, OUTPUT);
digitalWrite(anodo, HIGH);
pinMode(ledg, OUTPUT);
}
void loop() {
digitalWrite(ledg, HIGH); // turn the LED G on by making the voltage HIGH
delay(1000); // wait for a second
digitalWrite(ledg, LOW); // turn the LED G off by making the voltage LOW
delay(1000); // wait for a second
}
se non ho scritto fregnacce così ti dovrebbe lampeggiare il segmento centrale dell'ultimo display a destra
leo72:
Questo codice è un miscuglio di 2 sketch....
Definisci una variabile led con valore 9, poi metti in output anche il pin 12.
Infine nel tuo loop metti all'infinito il pin 12 su HIGH ed il pin 9 su LOW. Come fa a lampeggiare lo sai solo te!
il problema è che è quasi l'una!
ho rimodificato lo sketch così ma non funziona lo stesso
int led = 9;
void setup() {
pinMode(led, INPUT);
pinMode(12, OUTPUT);
}
void loop() {
pinMode(12, HIGH);
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a second
}
allora se vuole accendere un led di un display il relativo anodo deve andare a 5V, quindi il tr che lo controlla deve andare in conduzione. Se guardate lo schema il tr4 (transistor dell'ultimo anodo) è pilotato dal pin 12 che secondo la pinature è d9, quindi il D9 va in output HIGH
poi il catodo del led G è pilotato dal pin 11 che corrisponde a d8, ma ora ho visto che non l'ho modificato nel mio sketch, provvedo subito, poi DEVE andare
non stavo parlando a nessuno in particolare, solo vedevo che ognun andava a ruota libera, la cosa bella è che dopo tutto sto casino vito se n'è andato e dobbiamo tenerci il dubbio fino alla prossima
void loop() {
pinMode(11, HIGH);
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(3000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(3000); // wait for a second
}
così manco funziona! che faccio vado a mettere le scarpe di ferro e metto un po di tiptap all'una di notte?? ho controllato anche le continuità tra arduino e il display ed è tutto apposto!
te l'ho scritto 10 post fa, e che questi spammano ]
int anodo = 9;
int ledg = 8;
void setup() {
pinMode(anodo, OUTPUT);
digitalWrite(anodo, HIGH);
pinMode(ledg, OUTPUT);
}
void loop() {
digitalWrite(ledg, HIGH); // turn the LED G on by making the voltage HIGH
delay(1000); // wait for a second
digitalWrite(ledg, LOW); // turn the LED G off by making the voltage LOW
delay(1000); // wait for a second
}
FUNZIONA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MICHè TI BECCHI UN KARMA A L'UNA E MEZZA DI NOTTE!
adesso ho capito come funziona! devono andare entrambi output per farlo accendere!
azzz abbiamo perso mezzora di sonno in chiacchiere
però a questo punto meglio che ti spieghi il reale funzionamento:
il pin che gestisce il transistor deve andare in output HIGH per farlo condurre e portare i 5V all'anodo comune del display
il pin che gestisce il segmento deve andare in output LOW per consentire il corretto percorso della corrente, creando la differenza di potenziale, poi lo mandi alternativamente in HIGH per farlo spegnere
io pensavo che per far circolare corrente bisognava inpostare un pin in output ed un altro input ed invece non era così!
vi ho fatto pure una foto!
comunque grazie a tutti! e buonanotte!
veramente il tuo codice è proprio di quelli "scrivo mentre dormo", se lo riguardi non è l'unico problema, e comunque la spiegazione l'ho data, poi basta rifarsi all'elenco di brunello, per sapere cosa devi mettere in HIGH (anodi dei display) e cosa in LOW (catodi dei segmenti)