Sommario:

Scheda Arduino autocostruita: 8 passaggi
Scheda Arduino autocostruita: 8 passaggi

Video: Scheda Arduino autocostruita: 8 passaggi

Video: Scheda Arduino autocostruita: 8 passaggi
Video: NUOVO Arduino UNO R4 🤯 La rivoluzione del making 2024, Novembre
Anonim
Scheda Arduino autocostruita
Scheda Arduino autocostruita

Progettando la tua scheda Arduino imparerai a conoscere alcuni nuovi componenti e circuiti elettronici, inclusi alcuni argomenti avanzati come l'alimentazione, il circuito di temporizzazione e l'uso di ATmega IC (circuito integrato).

Ti aiuterà in futuro a creare i tuoi progetti come stazione meteorologica, scudi domotici, ecc.

Il vantaggio dell'Arduino autocostruito è che ha un basso consumo energetico e garantisce che un progetto possa funzionare a lungo con una batteria.

Inoltre è possibile espandere la scheda aggiungendo l'espansione della porta digitale o analogica o alcuni moduli di comunicazione.

Forniture

L'hardware

Per costruire un Arduino minimalista, avrai bisogno del seguente hardware:

1x microcontrollore ATmega328P-PU con bootloader Arduino

1x regolatore di tensione lineare 7805 (uscita 5v, ingresso 35v max)

1x breadboard (sto usando 830 pin board)

Vari cavi di collegamento

1x oscillatore a cristallo da 16 MHz

1x presa ic 28 pin

1x condensatore elettrolitico da 1 μF, 25 V

1x condensatore elettrolitico da 100 μF, 25 V

2x 22 pF, condensatori ceramici da 50 V

2x condensatori ceramici da 100 nF, 50 V

2 resistenze da 330 Ohm (R1 e R2)

1x resistenza da 10 kOhm (R3)

2x LED a scelta (LED1 e LED2)

1x pulsante

Header 2x 6 pin opzionali e header 3x 8 pin

1x scatto della batteria di tipo PP3

1x batteria di tipo PP3 da 9 V

1x adattatore di programmazione FTDI

Passaggio 1: regolatore di tensione lineare 7805

7805 Regolatore di tensione lineare
7805 Regolatore di tensione lineare
7805 Regolatore di tensione lineare
7805 Regolatore di tensione lineare
7805 Regolatore di tensione lineare
7805 Regolatore di tensione lineare

Un regolatore di tensione lineare contiene un semplice circuito che converte una tensione in un'altra. Il regolatore 7805 può convertire una tensione tra 7 e 30 volt in un 5 volt fisso, con una corrente fino a 1 amp, il che è perfetto per la nostra scheda Arduino.

Inizieremo con la creazione del circuito di alimentazione che contiene un regolatore di tensione 7805 in forma TO-220 e due condensatori da 100 μF ciascuno.

Quando guardi la parte anteriore del chip 7805: il pin a sinistra è per la tensione di ingresso, il pin centrale si collega a GND e il pin a destra è la connessione di uscita a 5 V. Consiglierei di posizionare un dissipatore di calore, perché quando il circuito assorbe un massimo di 1 amp di corrente il chip 7805 sarà abbastanza caldo (puoi bruciarti la punta del dito quando lo tocchi).

Posizionare un condensatore da 100 μF tra l'IN del regolatore e la terra e un condensatore da 100 μF sulla guida di destra tra l'alimentazione e la terra. Devi stare attento: il condensatore elettrolitico è polarizzato (la striscia argentata sul condensatore indica la gamba di terra) e deve essere posizionato esattamente secondo lo schema.

Aggiungi i cavi di alimentazione e di terra per dove sarà il tuo regolatore di tensione, collegando ogni guida al centro e nella parte destra della scheda. In questo modo abbiamo un'alimentazione a 5 Volt dai binari superiore e inferiore della breadboard. Inoltre includeremo un LED rosso che si accende quando l'alimentazione è accesa, in questo modo possiamo sempre vedere quando la nostra scheda è alimentata.

Un LED è un diodo e consente alla corrente elettrica di fluire solo in una direzione. L'elettricità dovrebbe fluire nella gamba lunga e fuori dalla gamba corta. Il catodo del LED ha anche un lato leggermente appiattito, che corrisponde alla gamba corta e negativa del LED.

Il nostro circuito ha un'alimentazione a 5 volt e un LED rosso è valutato intorno a 1,5 - 2 volt. Per ridurre la tensione dobbiamo collegare il resistore in serie al LED limitando la quantità di elettricità che scorre per evitare la distruzione del LED. Parte della tensione verrà utilizzata dal resistore e solo una parte adeguata di essa viene applicata attraverso il LED. Inserire il resistore tra la gamba corta del LED e la riga contenente il filo nero sul lato destro del chip (GND).

I fili rosso e nero a sinistra del regolatore di tensione sono i punti in cui verrà collegato l'alimentatore. Il filo rosso è per l'ALIMENTAZIONE e il filo nero è per la terra (GND).

NOTA: è possibile collegare solo un alimentatore compreso tra 7-16V. Più basso e non otterrai 5V dal tuo regolatore, e una tensione più alta di 17 V danneggerà il tuo chip. È adatta una batteria da 9 V, un alimentatore da 9 V CC o un alimentatore da 12 V CC.

E per alcuni circuiti più avanzati puoi posizionare un regolatore di tensione con tensione regolabile. In questo modo è possibile aggiungere alla scheda alcuni sensori da 3,3 V o alimentare un motore da 9 V DC.

Maggiori informazioni sui regolatori di tensione lineari -

www.instructables.com/id/Introduction-to-Linear-Voltage-Regulators

Passaggio 2: Microcontrollore ATmega328P-PU

Microcontrollore ATmega328P-PU
Microcontrollore ATmega328P-PU
Microcontrollore ATmega328P-PU
Microcontrollore ATmega328P-PU
Microcontrollore ATmega328P-PU
Microcontrollore ATmega328P-PU

Per costruire un Arduino sulla breadboard è necessario un microcontrollore ATmega328P-PU che è il cervello della nostra scheda Arduino autocostruita. Posizionalo come mostrato negli schemi e fai attenzione: le gambe possono rompersi se le spingi dentro, oppure puoi usare una presa IC a 28 pin. IC deve essere posizionato con un taglio a forma di luna orientato a sinistra della breadboard (i pin sono numerati da 1 a 28 in senso antiorario).

NOTA: non tutti gli ATmega IC contengono il bootloader Arduino (il software che gli consente di interpretare gli schizzi scritti per un Arduino). Quando cerchi un microcontrollore per il tuo Arduino fai da te, assicurati di selezionarne uno che includa già il bootloader.

Qui un po' di teoria del microcontrollore

Un microcontrollore è un minuscolo computer con un processore che esegue le istruzioni. Dispone di vari tipi di memoria per contenere dati e istruzioni dal nostro programma (schizzo); ATmega328P-PU ha tre tipi di memoria: memoria flash ISP (programmazione interna al sistema) da 32 kB in cui vengono archiviati gli schizzi, EEPROM da 1 kB (memoria di sola lettura programmabile cancellabile elettricamente) per l'archiviazione di dati a lungo termine e SRAM da 2 kB (memoria statica ad accesso casuale).) per memorizzare le variabili durante l'esecuzione di uno schizzo.

NOTA: è importante sapere che i dati nella memoria flash e nella EEPROM vengono conservati quando viene tolta l'alimentazione al microcontrollore.

Il microcontrollore dispone di 13 linee di ingresso/uscita digitali per uso generico (GPIO) e sei linee GPIO a 10 bit (valori compresi tra 0 e 1023) analogiche al convertitore digitale (ADC) per convertire la tensione su un pin in un valore digitale. Esistono tre timer con due timer a 8 bit con valori compresi tra 0 e 255 e un timer a 16 bit con valori tra 0 e 65535, che vengono utilizzati dalla funzione delay() in uno schizzo o dalla modulazione di larghezza di impulso (PWM).

Sono disponibili cinque modalità di risparmio energetico selezionabili dal software e il microcontrollore opera tra 1,8 V e 5,5 V. È possibile utilizzare l'immagine come riferimento per la disposizione dei pin dell'ATmega328P-PU.

Esistono tre gruppi di porte: PB, PC e PD con rispettivamente 8, 7 e 8 pin, più due pin di terra (GND), un pin da 5 V (VCC) con tensione di alimentazione (AVCC) e tensione di riferimento analogica (AREF).) per il convertitore analogico-digitale (ADC).

Passaggio 3: interconnessione ATmega328P-PU

Interconnessione ATmega328P-PU
Interconnessione ATmega328P-PU

Dopo aver posizionato IC, collegare i pin 7, 20 e 21 dell'ATmega al binario di alimentazione positivo sulla breadboard e i pin 8 e 23 ai binari di alimentazione negativi, utilizzare i ponticelli per collegare i binari di alimentazione positivo e GND su entrambi i lati del scheda, come mostrato in figura.

Pin 7 - Vcc - Tensione di alimentazione digitale

Pin 8 - GND

Pin 22 - GND

Pin 21 - AREF - Pin di riferimento analogico per ADC

Pin 20 - AVcc - Tensione di alimentazione per il convertitore ADC. Deve essere collegato all'alimentazione se l'ADC non viene utilizzato come nel nostro esempio. Se desideri utilizzarlo in futuro, deve essere alimentato tramite un filtro passa basso (per ridurre il rumore).

Dopodiché posiziona un pin di intestazione a quattordici vie: sarà simile ai GPIO di Arduino.

Passaggio 4: pulsante di ripristino

Tasto reset
Tasto reset
Tasto reset
Tasto reset

Aggiungi il piccolo interruttore tattile in modo da poter resettare Arduino e preparare il chip per caricare un nuovo programma. Una rapida pressione momentanea di questo interruttore ripristinerà il chip.

Inseriamo il pulsante di reset nel nostro circuito come mostrato in figura, quando lo premiamo il circuito elettrico verrà accorciato a GND bypassando una resistenza da 1kOhm e collegando il Pin 1 di ATmega a GND. Quindi, aggiungi un filo dalla gamba in basso a sinistra dell'interruttore al pin RESET del chip ATmega e un filo dalla gamba in alto a sinistra dell'interruttore a terra.

Inoltre, aggiungere un resistore di pull-up da 10 k Ohm a +5 V dal pin RESET per evitare che il chip si ripristini durante il normale funzionamento. Questo resistore sarà collegato all'alimentatore da 5 volt, 'tirando su' il Pin 1 a 5 volt. E quando colleghi il Pin 1 a 0V senza un resistore, il chip si riavvierà. Al riavvio del microcontrollore cercare un nuovo programma in fase di caricamento (all'accensione se non viene inviato nulla di nuovo, esegue l'ultimo programma inviato).

Il resistore ha una striscia di quattro colori. Leggendo Marrone=1, Nero=0, Arancione=3 ci dà il numero 103. La resistenza in Ohm inizia '10' con 3 zeri dopo - 10.000 Ohm o 10 kilo Ohm, e la striscia dorata è la tolleranza (5 %).

Per aggiornare il nostro circuito, possiamo posizionare un condensatore di "disaccoppiamento". Posiziona un condensatore ceramico da 100 nF (nano Farad). Si tratta di un piccolo disco con due fili con la "marcatura 104" e questo tipo di condensatore non è polarizzato e può essere posizionato in qualsiasi orientamento.

Questo condensatore di "disaccoppiamento" attenua i picchi elettrici, quindi il segnale di riavvio inviato al Pin 1 viene rilevato in modo affidabile. Le cifre 104 mostrano la sua capacità in pico Farad in notazione scientifica. L'ultima cifra '4' ci dice quanti zeri aggiungere. La capacità inizia con "10" e poi continua con altri 4 zeri - 100.000 pico Farad, e poiché 1000 pico Farad sono 1 nano Farad, ci sono 100 nano Farad (104).

Inserire il condensatore tra la gamba in alto a sinistra del chip (pin 1, in senso antiorario dalla forma a mezzaluna)

Passaggio 5: oscillatore a cristallo

Oscillatore di cristallo
Oscillatore di cristallo
Oscillatore di cristallo
Oscillatore di cristallo

Ora creeremo l'orologio per l'IC. È un quarzo da 16 Mhz e due condensatori ceramici da 22 pF (piko Farad) ciascuno. L'oscillatore a cristallo crea un segnale elettrico con una frequenza molto precisa. In questo caso, la frequenza è 16 MHz, il che significa che il microcontrollore può eseguire 16 milioni di istruzioni del processore al secondo.

Il cristallo da 16 MHz (figura) consente all'Arduino di calcolare il tempo e i condensatori servono a livellare la tensione di alimentazione.

Le gambe in cristallo di quarzo sono entrambe le stesse: non puoi cablarlo all'indietro. Collegare una gamba del cristallo al pin 9 del chip ATmega e l'altra gamba al pin 10. Collegare le gambe di uno dei condensatori del disco da 22 pF al pin 9 e GND, e l'altro condensatore del disco al pin 10 e GND, come mostrato in Figura.

Nota: i condensatori a disco non sono polarizzati e possono essere inseriti in qualsiasi modo.

Vale la pena ricordare che le lunghezze dei cavi tra i condensatori da 22 pF devono essere di uguale lunghezza e dovrebbero essere il più vicino possibile al controller per evitare interazioni con altre parti dei circuiti.

Passaggio 6: aggiunta del LED al pin 13

Aggiunta di LED al pin 13
Aggiunta di LED al pin 13
Aggiunta di LED al pin 13
Aggiunta di LED al pin 13
Aggiunta di LED al pin 13
Aggiunta di LED al pin 13

Ora aggiungeremo il LED verde (pin digitale 13 su Arduino).

Inserisci una gamba lunga del LED nella riga sotto il filo rosso (sul lato destro del chip - alimentazione o 5 Volt) e la gamba corta nella prima riga vuota sotto il microcontrollore.

Questo resistore da 330 Ohm è collegato in serie al LED, limitando la quantità di elettricità che scorre per evitare la distruzione dei LED.

Inserire il resistore tra la gamba corta del LED e la riga contenente il filo nero sul lato destro del chip (GND o 0Volts)

Tutti i pin analogici, digitali e di altro tipo disponibili sulla normale scheda Arduino sono disponibili anche nella nostra versione breadboard. È possibile utilizzare lo schema ATmega e la tabella dei pin come riferimento.

Passaggio 7: connettore da USB a seriale

USB a connettore seriale
USB a connettore seriale
USB a connettore seriale
USB a connettore seriale
USB a connettore seriale
USB a connettore seriale
USB a connettore seriale
USB a connettore seriale

Il microcontrollore ATmega 328P-PU fornisce tre modalità di comunicazione: una seriale programmabile USART (trasmettitore-ricevitore sincrono e asincrono universale), una porta seriale SPI (Serial Peripheral Interface) e un'interfaccia seriale a due fili. USART prende byte di dati e trasmette i singoli bit in sequenza, il che richiede linee di comunicazione di trasmissione (TX) e ricezione (RX). SPI utilizza quattro linee di comunicazione: master-out slave-in (MOSI), master-in slave-out (MISO) e orologio seriale (SCK) con una linea di selezione slave (SS) separata per ciascun dispositivo. Il bus di comunicazione I2C Two Wire Interface (TWI) utilizza due linee di segnale: dati seriali (SDA) e clock seriale (SCL).

Per connettere la nostra scheda al PC con Arduino IDE per il download di uno sketch, utilizzeremo un'interfaccia UART da USB a seriale come FT232R FTDI.

Quando acquisti un cavo FTDI assicurati che sia il modello a 5 V, perché il modello a 3,3 V non funzionerà correttamente. Questo cavo (mostrato in figura) ha una presa USB su un'estremità e una presa con sei fili sull'altra.

Quando colleghi il cavo, assicurati che il lato della presa con il filo nero si colleghi al pin GND sui pin dell'intestazione della breadboard. Una volta che il cavo è collegato, fornisce anche alimentazione al circuito, proprio come farebbe una normale scheda Arduino.

Quindi collegheremo il nostro FTDI con la nostra scheda Arduino autocostruita; per riferimento è possibile utilizzare la tabella e lo schema.

Un condensatore elettrolitico da 0,1 μF è collegato tra il pin DTR (Data Terminal Ready) sull'interfaccia USB-UART seriale e il reset del microcontrollore, che ripristina il microcontrollore per la sincronizzazione con l'interfaccia USB-seriale.

NOTA: una parte intelligente è che il pin RX del microcontrollore deve essere collegato al TX dell'USB all'adattatore seriale e lo stesso con il TX di un dispositivo all'RX dell'altro.

Il pin CTS (Clear to Send) dall'USB all'interfaccia UART seriale non è collegato al microcontrollore.

Per scaricare uno sketch sul microcontrollore nell'IDE Arduino dal menu Strumenti ➤ Porta selezionare la relativa porta di comunicazione (COM) e dal menu Strumenti ➤ Scheda selezionare Arduino/Genuino Uno. Lo sketch viene compilato nell'IDE di Arduino e quindi caricato nel microcontrollore con l'USB sull'interfaccia UART seriale. Quando lo sketch viene scaricato, i LED verde e rosso dell'interfaccia UART da USB a seriale TXD e RXD lampeggiano.

L'interfaccia da USB a UART seriale può essere rimossa e un alimentatore da 5 V collegato al microcontrollore. Un LED e un resistore da 220 kΩ sono collegati al pin 19 del microcontrollore, equivalente al pin 13 di Arduino, per eseguire lo sketch del lampeggio.

Passaggio 8: caricamento dello schizzo o installazione del bootloader

Caricamento dello schizzo o installazione del Bootloader
Caricamento dello schizzo o installazione del Bootloader
Caricamento dello schizzo o installazione del bootloader
Caricamento dello schizzo o installazione del bootloader

Se non si dispone di un convertitore da USB a seriale, è possibile utilizzare un altro Arduino (nel mio caso Arduino UNO) per caricare uno sketch o un bootloader sulla scheda autocostruita.

I microcontrollori ATmega238P-PU richiedono un bootloader per caricare ed eseguire sketch dall'IDE Arduino; quando viene applicata l'alimentazione al microcontrollore, il bootloader determina se viene caricato un nuovo schizzo, quindi carica lo schizzo nella memoria del microcontrollore. Se si dispone dell'ATmega328P-PU senza bootloader, è possibile caricare il bootloader utilizzando la comunicazione SPI tra due schede.

Ecco come caricare un bootloader su ATmega IC.

Per prima cosa iniziamo con la configurazione del nostro Arduino UNO come ISP, questo viene fatto perché si desidera che Arduino UNO carichi lo sketch sull'IC ATmega e non su se stesso.

Passaggio 1: configurazione del nostro Arduino UNO come ISP

Non collegare l'IC ATmega mentre è in corso il caricamento di seguito.

  • Collega l'arduino a un PC
  • Apri l'IDE di Arduino
  • Seleziona la scheda appropriata (Strumenti > Scheda > Arduino UNO) e la porta COM (Strumenti > Porta > COM?)
  • Apri > Esempi > ArduinoISP
  • Carica schizzo

Successivamente è possibile collegare la propria scheda all'Arduino UNO seguendo il circuito come mostrato nello schema. In questa fase non è necessario alimentare la propria scheda in quanto Arduino fornirebbe la potenza necessaria.

Passaggio 2: caricamento di uno schizzo o bootloader

Con tutto collegato apri l'IDE dalla cartella che hai appena creato (la copia).

  • Seleziona Arduino328 da Strumenti > Scheda
  • Seleziona Arduino come ISP da Strumenti> Programmatore
  • Seleziona Masterizza Bootloader

Dopo una masterizzazione riuscita si otterrebbe un "bootloader di masterizzazione completata".

Il bootloader è ora caricato sul microcontrollore, che è pronto per ricevere uno schizzo dopo aver modificato la porta COM nel menu Strumenti ➤ Porta.

Consigliato: