mercoledì 1 settembre 2021

Arduino N° 105 - Convertitore decimale/binario ad 8 bit.

Arduino N° 104

 Achille De Santis

Arduino N°  106



/*  
 *  -------------------------------------------------------------------
 *  Convertitore decimale/binario ad 8 bit.
 *  by Achille De Santis - v1 del 31-08-2021
 *  -------------------------------------------------------------------
 */

const int T=25, T1=50;
int v, i;

void intestazione()
  Serial.println(" -------------------------------------------- ");
  Serial.println(" - Tecnatron - Achille De Santis            - ");
  Serial.println(" - tecnatron@gmail.com                      - "); 
  Serial.println(" - Convertitore decimale/binario ad 8 bit.  - ");        
  Serial.println(" - V1 del 31-08-2021                        - "); 
  Serial.println(" -------------------------------------------- ");
}

int leggiInt()
  {
    while(!Serial.available());
    return(Serial.parseInt());
  }

void setup() 
{
  Serial.begin(9600);           // stabilisco la velocità di comunicazione
  intestazione();               // intestazione, inviata alla seriale
}

void loop() 
{
  Serial.print("INSERISCI VALORE DECIMALE: ");
  v=leggiInt();
  Serial.println(v);
  
  Serial.print("il valore binario è:\t ");
  for (i=7; i>=0; i--) 
    {
      Serial.print(bitRead(v, i));
      Serial.print(" ");
      delay(T);
    }  
  Serial.println("\n");
  delay(T1); 
}
 
Nota: Se non volete visualizzare la conversione dello '0' dopo ogni invio
  • Impostare 'Nessun fine-riga' nel monitor
  • Chiudere e riaprire il monitor seriale  
 

Simulazione: 



Argomenti correlati: 

lunedì 30 agosto 2021

mercoledì 21 luglio 2021

Arduino N° 104 - Shock sensor - Sensore di urto, retriggerabile.

< Arduino N° 103         

 Achille De Santis

Arduino N°  105



Sensore di urto, o shock sensor, è utile per segnalare un evento o attivare un allarme.

Il dispositivo presentato ha l'ulteriore proprietà di 

  • spegnere l'avviso di evento dopo un certo tempo impostabile (tipicamente 5 secondi);
  • "retriggerare", cioè far ripartire il temporizzatore se un altro evento si presentasse prima dello scadere del tempo di ritardo;
  • il temporizzatore è NON-bloccante ed il controllore può continuare a svolgere altre funzioni.


Fig. 1: sensore di urto; 
Lo schema elettrico è banale e vi invito a ricavarlo da soli.

In fig 1 viene mostrato lo schema pratico di assemblaggio dei componenti necessari. 
Il pulsante simula il sensore di urto e può essere rimosso, una volta che si inserisca l'idoneo sensore.
Il segnale in ingresso è di tipo PULLUP e quindi il suo valore dovrà essere "normalmente alto" e commuterà verso lo zero in presenza di evento.  

Se necessario, si può invertire la logica con semplici modifiche HW/SW.

Buona sperimentazione!

Simulazione: 



Argomenti correlati: 

mercoledì 14 luglio 2021

Arduino N° 103 - Distributore automatico di bevande

< Arduino N° 102            

 Achille De Santis

Arduino N°  104



Semplice distributore automatico di bevande, gestito da microcontrollore.


Dall'idea di base è possibile aggiungere un attuatore per il posizionamento dei bicchieri, alcuni sensori per eventuali pagamenti in moneta, con possibilità di ritornare il resto.


Fig.1: schema di base del distributore automatico di bevande;

Il dispositivo potrebbe essere aggiornato con una scheda NFC (RF-id) a lettura/scrittura, con possibilità di ricarica locale, attraverso monete correnti da 5, 10, 20, 50 euroCent, oppure da 1, 2 euro.

In alternativa, si potrebbe prevedere il pagamento con carte di credito ricaricabili.
Il sistema deve necessariamente essere sicuro ma offre la possibilità di utilizzare schede ricaricabili fornite dal gestore, attraverso un circuito bancario autorizzato, oppure di utilizzare schede personali, già in possesso dell'utente.


Le soluzioni sono diverse ed ognuna richiede una analisi specifica delle "condizioni al contorno", dei dispositivi e dei circuiti di pagamento da coinvolgere, escludendo, finalmente, le "schede usa e getta" di ogni tipo (a scalare),  i dispositivi "custom" di ricarica e quant'altro.

mercoledì 7 luglio 2021

Arduino N° 102 - Capacitor Meter

< Arduino N° 101   

 Achille De Santis

Arduino N°  103




Come promesso nel precedente post riguardante il misuratore di resistenze, ecco qui un misuratore di capacità. Lo strumento è basato sul principio della carica elettrica immagazzinata sul condensatore sotto misura e sulla tensione da esso assunta. Lo schermo LCD fornisce la visualizzazione diretta dei valori rilevati.

Prestate attenzione ai collegamenti ed al montaggio ordinato dei componenti.

Fig. 1: layout di montaggio del capacimetro;

Valgono le solite raccomandazioni per ottenere uno strumento funzionale ed affidabile: alimentazione adeguatamente filtrata, montaggio ordinato e corretto, uso di capacità di fuga ecc...

mercoledì 30 giugno 2021

Arduino N° 101 - Resistor Meter

< Arduino N° 100

 Achille De Santis

Arduino N°  102





Questo è uno strumento didattico ma può anche essere utilizzato in campo semiprofessionale.

Fig. 1: Misuratore di resistenze;
Il dispositivo realizza un misuratore di resistenza elettrica.

Valgono le solite raccomandazioni per ottenere uno strumento funzionante ed affidabile: filtrare l'alimentazione, montaggio ordinato e corretto, uso di capacità di fuga ecc...

Al prossimo post vi proporrò un capacimetro. I due strumenti potrebbero essere integrati in un unico dispositivo, dal momento che hanno molti elementi in comune.

Buona sperimentazione!

mercoledì 23 giugno 2021

Arduino N° 100 - Comando seriale remoto per LED RGB

< Arduino N° 99

 Achille De Santis

Arduino N°  101


Fig 1: schema pratico di montaggio;
Questo esempio mostra come sia possibile inviare comandi sulla porta seriale di comunicazione.


Con due moduli Arduino (Uno, Nano) è possibile realizzare un dispositivo TX-RX di gestione seriale per LED RGB.

Il circuito può essere anche modificato per adattarlo alle proprie esigenze.

Il primo modulo (a sinistra, nella figura 1) viene usato come "Trasmettitore", il secondo (a destra, in figura) come ricevitore.

Tre ingressi analogici del modulo trasmettitore leggono i valori di tensione impostati in ingresso sui tre potenziometri, associati ai tre colori RGB.

I valori analogici vengono, poi, inviati sulla seriale e ricevuti dal secondo modulo, quello ricevitore, che li riconosce ed attua le tre uscite relative, formando il colore composito generato dai tre coefficienti primari utilizzati. Per fare questo, le tre uscite devono essere di tipo PWM; in particolare ho scelto le uscite PWM D3, ,D4, D5.

Le alimentazioni vanno separate ed associate ai rispettivi moduli; sul modulo TX verranno associati i potenziometri mentre su quello RX verrà associato il LED RGB.


Nel caso voleste alimentare più diodi LED il circuito di pilotaggio andrebbe modificato con un opportuno stadio driver/separatore, utilizzando tre BJT o MOSFET come amplificatori in configurazione "lineare".


La pagina di simulazione può essere molto esplicativa del funzionamento.

Le tre resistenze collegate in serie al rispettivo potenziometro servono per avere sul potenziometro tutta l'escursione della tensione per l'accensione del LED. Usando potenziometri rotativi da 300° l'accensione avviene entro una rotazione di circa 60-70°, lasciando altri 230° per la modulazione dei coefficienti tricromatici.

Fig. 2: Alimentazione separata per i due moduli;
Attenzione! Il firmware è diviso in due parti: una per il TX, l'altra per l'RX.

Inoltre, le due alimentazioni devono essere assolutamente separate! 
Del resto, se i due dispositivi sono sufficientemente lontani non può che essere così! In figura sono collegate insieme a puro titolo di prova. Quello che deve essere comune è soltanto la massa.

Il dispositivo si modifica come in figura 2:


Fig. 3: polarizzazione separata dei tre led RGB;


In figura 3 è riportato lo schema con una polarizzazione indipendente delle tre componenti RGB del LED.



Grazie a Gualtiero Piazzi per il costruttivo commento.