Atmega standalone instabile

Buonasera ho recentemente programmato una centralina per il mio cancello automatico e con tanto impegno prove e tempo sono riuscito a renderla perfetta e sicura.
ho voluto quindi progettare un pcb e farmelo sviluppare implementando l'atmega standalone

il chip funziona a 16mhz infatti ho messo il quarzo corretto e i due condensatori da 22pf a massa
nella configurazione ho messo anche la resistenza di pullup per evitare il reset (se non sbaglio serve a questo? sul pin 1) e le varie alimentazioni e masse niente di piu. il bootloader l'ho caricato con l'aiuto di un altro arduino su breadboard. una volta messo il bootloader ho delicatamente rimosso l'atmega dall'arduino originale e inserito il nuovo atmega che ho programmato senza problemi.

adesso sto caricando a pezzi il codice per provare ogni funzione della scheda e proprio mentre testo i relè sfruttando un banalissimo blink del codice esempio noto che dei miei 3 relè uno manda in crisi il tutto. i primi due sui pin dig 6 e 7 funzionano perfettamente, mentre quello sul pin 5 fa un po come vuole, a volte scatta a volte no a volte salta il delay oppure a volte addirittura blocca lo scorrere del programma. usando l'atmega sulla board di arduino tutto funziona, ma appena lo metto da solo mi da questo problema...
vi viene in mente qualcosa?

Bastava fare una ricerca qui sul forum per scoprire che ... è cosa normalissima, specie se i relè controllano carichi induttivi.

Purtroppo i disturbi causati dalle bobine dei relè o dai carichi ... creano un'infinità di problemi.

Che schede relè stai usando e cosa controllano ?

Guglielmo

no aspetta non torna la cosa.

intanto ora non hanno nessun carico li sto provando a vuoto.
i relè li ho comprati "nudi" non sono su una scheda, li attivo fornendo la tensione richiesta.

se io mando con una scheda arduino una tensione (con digitalWrite per capirci) al pin interessato, il relè funziona
ma se questa tensione la manda l'atmega standalone va in crisi tutto

Mi limito a fare 2+2, cioè se con arduino board funziona correttamente mentre con la tua scheda standalone no, devo allora per forza puntare il dito verso la tua scheda come colpevole. Quindi posta lo schema e layout del PCB.

Ciao.

... quindi li piloti direttamente con un pin? Senza neanche un transistor? Che relè sono (metti il link)?

Guglielmo

si direttamente con un pin, sono relè con bobina da 5v

si chiamano HF3FF
SB0730A2

son o le sigle che ci sono sopra, il link mi viene difficile reperirlo perchè ho comprato su t.m.e.

li ho sempre usati così è la prima volta che mi succede

Allora, tu puoi anche averli sempre usati così e ti possono anche aver sempre funzionato, ma ... sei fuori specifiche ed è normale che la MCU possa non farcela, resettari o proprio bruciarsi il pin a cui è collegato il relè.

Le specifiche della versione a 5V sono QUI ... ora, si legge bene che:

Resistenza della bobina 70Ω
Assorbimento di potenza della bobina 360mW

... aggiungo io:

Corrente assorbita dalla bobina 71mA (5V / 70Ω)

... valori che NON sono assolutamente compatibili con i pin di ATmega328P.

Se ti studi il datasheet ti rendi conto che:

... ovvero:

ogni pin di Arduino può dare al massimo, a Vcc, 40 mA (... ma quello è veramente un limite, nel normale funzionamento occorre stare al 60-70% di detto valore) ed inoltre la somma di tutti i pin e dell'assorbimento del chip, non deve superare al massimo i 200 mA (... e anche qui massimo va considerato come valore limite, ma nel normale funzionamento occorre stare al 60-70% di detto valore). Assorbimenti oltre detti limiti possono danneggiare irrimediabilmente il chip.

Lo schema che stai usando è pertanto totalmente sbagliato e fuori specifiche poi ... vedi tu ... :roll_eyes:

Guglielmo

1 Like

... ah, dimenticavo, i relè, con ATmega328P, si controllanso almeno con questo schema:

Guglielmo

Scusa @ gpb01 ma in quello schema hai posizionato il pin del transistor P2N2222A, il 2n2222 ha scambiato l'emettitore e il collettore.
Saluti.

grazie ... ho corretto l'immagine mettendo la giusta piedinatura - gpb01

avete pienamente ragione! quindi userò un banale transistor con una resistenza in serie alla base per mandare in conduzione collettore ed emettitore e faccio arrivare la tensione 5v al rele! sicuramente funzionerà vi faccio sapere!
scusate, invece il diodo in parallelo alla bobina a cosa serve? questo mi sfugge sono sincero, mancanza mia
perchè ho visto che comunque il relè scatta indipendentemente dal verso di collegamento della bobina ovviamente, quindi non servrà per quello

grazie a tutti ragazzi

... grazie mille per essertene accorto ed avelo segnalato ... come vedi non sono schede che ho fatto io, ma le fece Pighixxx molto tempo fa e ... ovviamente NON sono esenti da errori. :expressionless:

Ho corretto e provveduto a SOSTITUIRE l'immagine con la giusta piedinatura :wink:

Guglielmo

... cerca extracorrenti di apertura e chiusura e capirai.

In pratica serve a proteggere il transistor dalle suddette.

Guglielmo

P.S.: Puoi guardare anche QUI che spiegano proprio quello ...

funziona, ma era ovvio
grazie per avermici fatto arrivare ahah
buona serata
si impara sempre qualcosa, soddisfatto!