Salve a tutti =D
In anzi tutto mi scuso per il titolo ma non sapevo come descrivere il problema, ad ogni modo oggi pomeriggio stavo provando il un progetto descritto sul kit di arduino, il progetto in questione è il numero 03 e fa utilizzo di un sensore di temperatura per accendere progressivamente tre led in base alla temperatura raggiunta dal sensore.
Il problema nasce ora, dopo aver verificato che tutto funzionasse sono rimasto a provarlo per un po' modificando anche il codice, e dopo averci giocherellato un po' ho notato che il filo della massa si era storto sul foro del breadboard quindi decisi di rimuovere il cavo e di raddrizzarlo e fu lì che tutti e tre i led si accenserò completamente tutti e tre, il punto è che non capisco il perché dubito che nella stanza ho raggiunto 32 gradi così in due secondi. So che può sembrare una domanda davvero stupida per aprire un nuovo topic, ma il dubbio non mi abbandona da questo pomeriggio e vorrei sapere per quale motivo rimuovendo la massa tutte e tre i led si sono accesi?
Per ultimo vorrei sapere se rimuovendo il cavo della massa cerchiato in rosso nella foto mentre arduino è alimentato dal PC rischio di danneggiarlo in qualche modo.
Se potesse tornare utile inserisco qui il codice che ho scritto sull'IDE di Arduino.
Grazie ancora per il supporto =D
Codice:
const int sensorPin = A0;
const float baselineTemp = 26.0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for(int pinNumber = 2; pinNumber<5; pinNumber++){
pinMode(pinNumber, OUTPUT);
digitalWrite(pinNumber, LOW);
}
}
void loop() {
// put your main code here, to run repeatedly:
int sensorVal = analogRead(sensorPin);
Serial.print("sensor Value: ");
Serial.print (sensorVal);
float voltage = (sensorVal/1024.0) * 5.0;
Serial.print (", Volts: ");
Serial.print (voltage);
Serial.print (", degrees C: ");
float temperature = (voltage - .5) * 100;
Serial.println (temperature);
if (temperature < baselineTemp){
digitalWrite (2, LOW);
digitalWrite (3, LOW);
digitalWrite (4, LOW);
}
else if (temperature >= baselineTemp+2 && temperature < baselineTemp+4){
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
digitalWrite (4, LOW);
}
else if (temperature >= baselineTemp +4 && temperature < baselineTemp+6){
digitalWrite (2, HIGH);
digitalWrite (3, HIGH);
digitalWrite (4, LOW);
}
else if (temperature >= baselineTemp +6){
digitalWrite (2,HIGH);
digitalWrite (3, HIGH);
digitalWrite (4, HIGH);
}
delay (1);
}
>core811: ti ricordo che in conformità al regolamento (... che ti consiglio di leggere con MOLTA attenzione), punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra). Grazie.
Scusa è da un bel po' che non uso forums ed ho perso certe abitudini comunque ho corretto e sto leggendo con attenzione il regolamento.
Comunque la mia curiosità permane, sapresti dirmi per quale motivo è successo quello che ho descritto nel post?
Sarei grato a chiunque sappia rispondere alla mia domanda, grazie ancora a chiunque voglia usare il suo tempo per rispondermi =D
Se togli la massa al sensore di temperatura quello dará una tensione alta all'uscita (temperatura alta). Percui si accendono tutti 3 i led.
visto che viene trasmesso il valore della temperatura letta sulla seriale cosa leggi nel terminale?
Non capisco come possono accendersi i LED quando gli manca la massa. Sei sicuro che non hai tolto il filo rosso (+5V).
Ciao Uwe
In anzi tutto grazie per la risposta, comunque sì sono sicuro di aver staccato unicamente il filo nero ovvero la massa e come ho scritto nel post tutti e tre i led si sono accesi contemporaneamente nello stesso momento in cui ho rimosso la massa. =O Siamo in due a non capire come e perché togliendo la massa i led si siano accesi ?_?
core811:
In anzi tutto grazie per la risposta, comunque sì sono sicuro di aver staccato unicamente il filo nero ovvero la massa e come ho scritto nel post tutti e tre i led si sono accesi contemporaneamente nello stesso momento in cui ho rimosso la massa. =O Siamo in due a non capire come e perché togliendo la massa i led si siano accesi ?_?
Scusami, ma non puó essere. I LED sono collegati con la loro resistenza tra uscita e massa. Se togli la massa non possono illuminarsi tutti 3, ma neanche uno.
Può darsi che in realtà che alternativamente ci sono delle uscite che vanno in low e quindi danno il negativo ai led
che lampeggiano e sembra che siano tutti accesi.
rxlogix52
uwefed:
Scusami, ma non puó essere. I LED sono collegati con la loro resistenza tra uscita e massa. Se togli la massa non possono illuminarsi tutti 3, ma neanche uno.
Ciao Uwe
Lo so, ed è per questo che mi sembra assurdo, non ho ancora modificato nulla da ieri, ne la breadboard ne il programma volendo potrei provare a filmare il tutto e vediamo se si viene a verificare quello che è successo ieri, la mia preoccupazione più che altro è quella che facendo questo "giochetto", io possa rovinare in qualche modo Arduino, quindi vi chiedo se togliendo la massa sulla breadboard dove vi sono collegati dei componenti e arduino stesso mentre lo stesso è alimentato tramite cavo, rischio in qualche modo di danneggiare Arduino?
rslogix52:
Può darsi che in realtà che alternativamente ci sono delle uscite che vanno in low e quindi danno il negativo ai led
che lampeggiano e sembra che siano tutti accesi.
rxlogix52
Capisco, quindi se ho capito bene le uscite di ardruino portavano una tensione negativa mentre il l'alimentazione +5V passando attraverso il sensore di temperatura ha portato l'alimentazione al LED, ma quello che non capisco è che a scuola mi hanno sempre detto che i LED come i diodi sono polarizzati e quindi hanno un verso, l'anodo deve sempre rivecere alimentazione positiva e il catodo deve stare a massa ma seguendo il percordo che ho disegnato su paint per vedere il giro della corrente mi sono reso conto che l'alimentazione va a finire sul catodo e la massa sull'anodo e questo mi lascia ancora di più perplesso, spero di aver capito bene e non aver capito una cosa per un'altra =O