Blow out LED - AZ-Delivery

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 :)

 

Für arduinoProjekte für anfänger

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione