Ciao a tutti
Oggi vorrei presentarti un progetto tanto ingegnoso quanto semplice. Abbiamo trovato questo su Arduino.cc: Spegni questo LED Arduino .
Questa proposta di progetto è rivolta a tutti coloro che amano armeggiare e provare. Per la maggior parte dei nostri progetti, è necessario solo copiare il codice sul controller e quindi collegare tutto. A causa della mancanza di hardware, ci è voluto del tempo per trovare i componenti giusti e coordinarli.
Il principio di funzionamento:
Quando viene azionato un LED, la corrente che lo attraversa genera calore nel cristallo emettitore. Più caldo diventa un LED durante il funzionamento, maggiore è la resistenza interna. Se raffreddiamo un LED, ad esempio soffiando su di esso o uno spray freddo, questo viene ridotto e registriamo una caduta di tensione.
[come puoi vedere qui abbiamo collegato il nostro LED con i colori sbagliati]
L'hardware:
Nell'esempio vengono utilizzati un resistore da 220 ohm e un LED SMD 0402 cablato. Se disponi di questo hardware disponibile, puoi utilizzare il seguente schizzo senza grandi modifiche, è solo necessario apportare una piccola modifica qua e là. Questo perché le variazioni di tensione sono marginali e le condizioni ambientali a volte variano notevolmente.
Il codice:
// Blow Out LED Ave crea un LED che puoi spegnere. Si riaccende automaticamente dopo 2 secondi // // Copyright 2018, Paul H. Dietz // Connessioni LED #define PLUS A1 // Lato alto della resistenza #define MISURA A0 // Lato inferiore della resistenza e anodo del LED // Il catodo del LED va a terra #define NumSamples 10 // Numero di campioni da conservare #define MINJUMP 150 // Salto minimo per l'espulsione lungo int dati di rilevamento[NumSamples]; int DataPtr = 0; int buffull = 0; vuoto configurazione() { serial.iniziare(250000); // Inizializza la comunicazione seriale pinMode(MISURA, INGRESSO); pinMode(PLUS, USCITA); digitalWrite(PLUS, ALTA); // Accendi il LED } vuoto cappio() { int cnt; lungo int somma = 0; // Somma 256 letture adc (per ridurre il rumore adc) per (cnt = 0; cnt < 256; cnt++) { somma = somma + Leggi analogico(MISURA); } serial.println(somma); // Somma dell'output in modo che possiamo guardare con il plotter seriale // Confronta la misurazione corrente con la più vecchia se il buffer è pieno se (buffull && (somma > (dati di rilevamento[DataPtr] + MINJUMP))) { // La caduta di temperatura ha superato il minimo - spegnere digitalWrite(PLUS, LOW); DataPtr = 0; // Reinizializza il buffer buffull = 0; ritardo(2000); // tempo di spegnimento per LED digitalWrite(PLUS, ALTA); } altro { dati di rilevamento[DataPtr] = somma; // Archivia gli ultimi dati nel buffer DataPtr++; // Aggiorna puntatore buffer se (DataPtr == NumSamples) { // Controlla se dataptr è andato oltre la fine DataPtr = 0; // Ripristina l'inizio del dataptr buffull = 1; // Contrassegna che il buffer è pieno } } }
Divertiti a armeggiare e provare :)