
A questo questo punto mi sono fatto prendere un pò la mano e ho aggiunto un pò di hardware, tanto per non sprecare uno shield quindi nell'ordine ho inserito:
- Il reset hardware visto che quello su arduino non era più raggiungibile. Basta mettere una resistenza da 10k fra i 5v ed il pin di reset e l'interruttore fra il pin reset e ground... più facile a farsi che a dirsi! ;)
- Un led blu (con la sua bella resistenza da 180 hom) al pin 6, che può lavorare in PWM. Il led può essere tagliato fuori rimuovendo un piccolo jumper.
- Un LM35DZ al pin analog 5 che può tornare utile nel caso in cui si voglia implementare un controllo per un eventuale ventola di raffreddamento case. Anche questo sensore può essere scollegato rimuovendo un jumper. A scanso d'equivoci, sulla base di precedenti esperienze contraddittorie, ho applicato in via del tutto preventiva il consiglio unversale degli elettronici..."PROVA A METTERE UN CONDENSATORINO" ;)
- Un led verde che indica la presenza di alimentazione alla scheda
- Un connettore 3 poli all'analog 4, con resistenza da 10k sul pin di lettura, che può essere esclusa ponticellando con un jumper (lo si vede in foto a lato della resistenza), nel caso in cui il sensore non ne abbia bisogno (il sensore PIR per esempio ne fa volentieri a meno).
Ovviamente per testare le funzionalità dello shield basta buttare giù un codicillo che per esempio dimeri il led sul pin 6 in funzione di una lettura di temperatura effettuata sul pin analog5... per il reset ovviamente non serve che vi spieghi come verificarne il funzionamento spero! ;)
Ah si... fondamentale è verniciare con la bomboletta spray di blu la millefori prima di lavorarci ma miraccomando, coprite con del nastro carta il lato ramato!
NB:Informazioni per l'uso, la mille fori che ho usato (e segato!) misura 20x17 fori!
Ecco un'aggiunta dell'ultima ora, un banalerrimo codicillo per testare la funzionalità dello shield...
/*
Programmino molto banalotto per controllare al volo la funzionalità dello shield intermedio per
Ardualarm. Ogni vota che viene premuto il tasto reset, compare a schermo la scritta "STARTING COMMUNICATION".
La temperatura controlla il LED che lampeggia al di sotto dei 50°C e rimane fisso al di sopra.
*/
int counter = 0;
int LED = 0;
int check = 0;
int temp = 0;
int time = 0;
int tempPIN = 0;
int control = 1;
void setup()
{
Serial.begin(9600);
LED = 6;
tempPIN = 5;
time = 15;
pinMode(LED,OUTPUT);
pinMode(tempPIN, INPUT);
Serial.println("STARTING COMMUNICATION");
}
void loop()
{
temp = analogRead(tempPIN);
temp = ((5.0 * temp * 100.0)/1024.0)-1.0;
if (temp > 50){
digitalWrite(LED,HIGH);
}
else{
analogWrite(LED,counter);
}
delay(time);
if (counter == 0){
check = 0;
}
if(counter == 200){
check = 1;
Serial.print("Temperature: "); //all'apice della luminosità viene comunicata la temperatura;
Serial.println(temp);
}
if(check == 0){
counter++;
}
else{
counter--;
}
}
Nessun commento:
Posta un commento