Sommario:

Caratteristiche meno conosciute di Arduino: 9 passaggi
Caratteristiche meno conosciute di Arduino: 9 passaggi

Video: Caratteristiche meno conosciute di Arduino: 9 passaggi

Video: Caratteristiche meno conosciute di Arduino: 9 passaggi
Video: NON CONOSCI ARDUINO??? te lo insegno io PUNTATA ZERO 2024, Novembre
Anonim
Caratteristiche meno conosciute di Arduino
Caratteristiche meno conosciute di Arduino

Questo è più un elenco di funzionalità non così spesso menzionate delle piattaforme Arduino tipicamente utilizzate (ad esempio Uno, Nano). Questo elenco dovrebbe fungere da riferimento ogni volta che è necessario cercare tali funzionalità e spargere la voce.

Guarda il codice per vedere esempi per tutte queste funzionalità mentre le ho usate in molti dei miei progetti qui su istruibile (ad esempio Arduino 1-wire Display (144 Chars)). I passaggi seguenti spiegano una funzionalità ciascuno.

Passaggio 1: tensione di alimentazione

L'Arduino può misurare la propria tensione di alimentazione in modo indiretto. Misurando il riferimento interno con la tensione di alimentazione come riferimento limite superiore è possibile ottenere il rapporto tra riferimento interno e tensione di alimentazione (la tensione di alimentazione funge da limite superiore per la lettura analogico/ADC). Sapendo il valore esatto della tensione di riferimento interna, è possibile quindi calcolare la tensione di alimentazione.

Per i dettagli esatti su come eseguire questa operazione, incluso il codice di esempio, vedere:

  • Voltmetro Arduino segreto – Misura la tensione della batteria:
  • Arduino può misurare il proprio Vin?:

Passaggio 2: temperatura interna

Alcuni Arduino sono dotati di un sensore di temperatura interno e possono quindi misurare la loro temperatura interna (semiconduttore).

Per i dettagli esatti su come eseguire questa operazione, incluso il codice di esempio, vedere:

Sensore di temperatura interno:

Arduino può misurare il proprio Vin?:

Passaggio 3: comparatore analogico (interruzione)

Arduino può impostare un comparatore analogico tra i pin A0 e A1. Quindi uno dà il livello di tensione e l'altro viene controllato per un attraversamento di questa tensione. Viene generato un interrupt a seconda che l'incrocio sia un fronte di salita o di discesa (o entrambi). L'interrupt può quindi essere catturato dal software e agito di conseguenza.

Per i dettagli esatti su come eseguire questa operazione, incluso il codice di esempio, vedere:

Interruzione comparatore analogico:

Passaggio 4: contatore

Naturalmente l'AVR ha diversi contatori inclusi. Di solito vengono utilizzati per impostare timer di varie frequenze e aumentare gli interrupt in caso di necessità. Un altro uso molto antiquato è quello di usarli come contatori senza alcuna magia aggiuntiva, basta leggere il valore quando ne hai bisogno (sondaggio). Un uso interessante di questo potrebbe essere quello di antirimbalzare i pulsanti, ad es. Conferisci ad esempio questo post: AVR Esempio contatore T1

Passaggio 5: costanti predefinite

Esistono alcune variabili predefinite che possono essere utilizzate per aggiungere informazioni sulla versione e sulla compilazione al progetto.

Per i dettagli esatti su come eseguire questa operazione, incluso il codice di esempio, vedere:

Serial.println(_DATE_); // data di compilazione

Serial.println(_TIME_); // tempo di compilazione

String stringOne = String(ARDUINO, DEC);

Serial.println(stringOne); // versione arduino ide

Serial.println(_VERSION_); // versione gcc

Serial.println(_FILE_); // file compilato

questi frammenti di codice restituiranno quei dati alla console seriale.

Passaggio 6: conservare la variabile nella RAM tramite il ripristino

È risaputo che Arduino Uno (ATmega328) ha una EEPROM interna che permette di conservare valori e impostazioni durante lo spegnimento e ripristinarli alla successiva accensione. Un fatto non così noto potrebbe essere che è effettivamente possibile preservare il valore durante il ripristino anche in RAM - tuttavia i valori si perdono durante il ciclo di alimentazione - con la sintassi:

unsigned long variabile_che_è_preservato _attributo_ ((sezione (".noinit")));

Questo permette ad esempio di contare il numero di RESET e utilizzando la EEPROM anche il numero di accensioni.

Per i dettagli esatti su come eseguire questa operazione, incluso il codice di esempio, vedere:

  • Mantieni variabile in Ram tramite Reset:
  • Libreria EEPROM:

Passaggio 7: accedere al segnale dell'orologio

Arduino e altri AVR (come ATtiny) hanno un orologio interno che ti consente di eseguirli senza utilizzare un oscillatore a cristallo esterno. Inoltre allo stesso tempo sono anche in grado di collegare questo segnale all'esterno inserendolo su un pin (es. PB4). La parte difficile qui è che è necessario cambiare i bit del fusibile del chip per abilitare quella funzione e cambiare i bit del fusibile comporta sempre il rischio di danneggiare il chip.

Devi abilitare il fusibile CKOUT e il modo più semplice per farlo è seguire le istruzioni su Come cambiare i bit dei fusibili dell'AVR Atmega328p - Microcontrollore a 8 bit usando Arduino.

Per i dettagli esatti su come eseguire questa operazione, incluso il codice di esempio, vedere:

  • Sintonizzazione dell'oscillatore interno ATtiny:
  • Come cambiare i fusibili dell'AVR Atmega328p - Microcontrollore a 8 bit usando Arduino:

Passaggio 8: struttura interna della porta di ATmega328P

Conoscere la struttura interna delle porte di ATmega328P ci permette di andare oltre i limiti di utilizzo standard. Consultare la sezione sul misuratore di capacità per range da 20 pF a 1000 nF per maggiori dettagli e uno schema del circuito interno.

Il semplice esempio consiste nell'utilizzare pulsanti con porte digitali che non richiedono alcun resistore a causa dell'uso di un resistore pull-up interno come mostrato dall'esempio di input pullup seriale o dal pulsante Arduino senza resistore istruibile.

Più avanzato è l'uso di questa conoscenza come menzionato per misurare condensatori fino a 20 pF e inoltre senza alcun cablaggio aggiuntivo! Per ottenere tali prestazioni, l'esempio utilizza l'impedenza interna/di ingresso, il resistore di pull-up interno e il condensatore parassita. Confronta con il tutorial Arduino CapacitanceMeter che non può scendere al di sotto di qualche nF.

Passaggio 9: LED integrato (incorporato) come fotorilevatore

Molte schede Arduino hanno LED integrati o incorporati che possono essere controllati dal codice, ad es. le schede Uno o Nano sul pin 13. Aggiungendo un singolo filo da questo pin a un pin di ingresso analogico (es. A0) possiamo anche utilizzare questo LED come fotorivelatore. Questo può essere usato in una varietà di modi diversi come; utilizzare per misurare l'illuminazione ambientale, utilizzare il LED come pulsante, utilizzare il LED per la comunicazione bidirezionale (PJON AnalogSampling), ecc.

Consigliato: