Help... da Arduino uno a ATMEGA328

Salve a tutti, sono ancora in fase di test del mio allarme (molto semplice) che sfrutterà un Interrupt (pulsante) e una shield GSM per SMS. A questo punto però mi viene in mente che vorrei trasferire tutto su una schedina con solo l' ATMEGA328 e qualche altro componente necessario.
Il problema è il seguente, non sono molto pratico su

  • come programmare l'ATMEGA328 (costruirmi programmatore o utilizzare Arduino ? )
  • Quali componenti necessito per far funzionare l' ATMEGA standalone per l'utilizzo di un interrupt, un IN digitale, un IN analogico (carica batteria) e un OUT digitale.

Innanzitutto sarei grato se mi deste una mano per programmare gli ATMEGA che ho comprato, poi magari potrei chiedervi anche il secondo punto...

GRAZIE :slight_smile:

Potresti partire da qui:

http://arduino.cc/forum/index.php/topic,150777.0.html

Parti direttamente dalla mia Guida alla Programmazione dei micro ATMEL, in firma, quel Topic era riferito al mega2560 e non al mega328.

Grazie a tutti e due... Michele io volevo farti i miei complimenti perchè è molto ben fatta e didattica!! GRAZIE :slight_smile:
Adesso aggiorno la situazione... ho trovato su ebay un programmatore USB ISP AVR a pochi euro, quindi userò lui

con questo schema

-- Adesso volevo chiedervi... per farlo lavorare in LOW POWER, a parte la funzione di SLEEP che sto studiando... di cosa altro ha bisogno per funzionare questo micro a 1MHz usando solo una schield GSM?

Grazie ancora

Se devi usare il micro a 1MHz puoi alimentarlo tranquillamente a 3V, inoltre dalla fabbrica esce già con questo clock, quindi non eseguire operazioni per cambiare i fuse in quanto sarebbeo assolutamente inutili.
La lib sleep è molto potente, una volta attivata la modalità il micro può arrivare a consumare davvero poco. Grazie per i complimenti :slight_smile:

Perfetto allora... basta programmarlo con l' IDE di arduino e il mio sketch di allarme... in pratica mettendolo in sleep posso farlo svegliare con un RTC una volta a settimana per mandare un sms "sono vivo"? e un altro interrupt per l'allarme vero e proprio (un interrupt low) ?
Cioè in pratica... di cosa ha bisogno la scheda che costruirò su millefori per poter far funzionare queste due funzioni? Potrò mettere in sleep anche il modulo GSM ?
Grazieeee

Un aiutino? :slight_smile:

questa non è una richiesta di aiuto pensabile, ciò che vuoi fare si può fare, prendi il materiale, comincia a fare un po' di ricerche sul playground, su Google, guardati le bellissime schede ABC di pighi nella sezione MegaTopic ed inizia a lavorare, poi chiedi aiuto agli intoppi, non c'è modo di fare diversamente. Devi solo stare accorto a cosa compri, ma basta un po' di ragionamento:

  • vuoi pilotare il micro con un RTC? ok, ma il modulo RTC deve allora avere un'uscita programmabile in qualche modo, non lo puoi fare certo facendo leggere l'orario al micro no?
  • il modulo GSM in sleep? certo, sempre che ne compri uno predisposto ad andarci, mica puoi dargli un sonnifero all'occorrenza.
  • Fai ancora attenzione che i moduli che acquisti non facciano uso "obbligatorio" degli stessi pin del micro, altrimenti andrebbero in confine l'uno con l'altro.
    Ciao :slight_smile:

Grazie Michele! Sto aspettando l'arrivo a casa del programmatore AVR e poi aspettero' il modulo GSM. Non appena ho fatto un po di prove torno a chiedere aiuto :slight_smile:

Grazie mille!

Bene, ci si sente appena hai novità. Ciao :slight_smile:

Eccoci... è arrivato il programmatore... ma... primo problema mi chiede update firmware, non riesco ad aggiornarlo da mac, ho letto in giro ma non riesco, anche perchè ho scoperto che il CHIP che ho comprato è un ATMEGA328 PU ma sono riuscito ad ovviare a quel problema modificando il config.
Pero' non riesco ad aggiornare il firmware del programmatore, riuscite ad aiutarmi? :frowning:

Ecco qui, e poi qualcuno si lamenta quando scrivo a caratteri cubitali che bisogna comprare la versione con la P!!!
Per l'aggiornamento del firmware non so proprio come aiutarti, ma nella mi firma ci sono le istruzioni per programmare questa versione del micro usando la vecchia IDE0022.

Non c'e' bisogno che tu aggiorni il firmware del programmatore USBASP.

Ignora il doppio errore che ti da', e' ininfluente ai fini della programmazione.

COnfermo che programma il chip... grazie :slight_smile: Ma... ho messo un delay di 1000 msec e fa un attesa di quasi 15 !! come mai?? :astonished: quarzo da 16Mhz (quello per la programmazione) e due condensatori e una resistenza, null'altro nel circuito.

Risolto... Non avendo modificato i fuse del micro lui va a 1MHz :slight_smile:
Grazie!! Adesso inizio la sperimentazione :slight_smile:

Ravnosalex:
Risolto... Non avendo modificato i fuse del micro lui va a 1MHz :slight_smile:

Tutti i micro Atmel quando escono di fabbrica vanno ad 1 MHz con l'oscillatore interno ad 8 MHz impostato col divisore 8x per portare il clock a 1 MHz.
Quindi la prima operazione da fare è sempre quella di flashare il bootloader sul chip, operazione con la quale l'IDE imposta anche i fuse (tutto scritto nella Guida di Menniti). :wink:

Ciao, grazie mille della risposta... Allora io vorrei tenero a 1Mhz con quarzo interno per risparmiare batteria... Volevo però chiedere un paio di cose.
A breve mi arriverà il modulo GSM, secondo voi 1MHz é abbastanza per farlo andar bene?
Altra domanda... A quanto mi consigliate di alimentare la scheda ? (Considerando che il GSM richiede 5V minimi).
Grazie ancora

La prima domanda da porsi è: la libreria GSM può lavorare a clock diversi dai 16 MHz?
Devi controllare il codice e vedere se è possibile.

Ehm... Come faccio a capire ciò ?
Poi nella guida di Menniti parla di scheda a 1MHz alimentata a 3.3v come mai? Grazie ancora

Ravnosalex:
Ehm... Come faccio a capire ciò ?

Te l'ho detto, devi prendere la lib e guarda il codice per capire se può lavorare a clock differenti.

Poi nella guida di Menniti parla di scheda a 1MHz alimentata a 3.3v come mai? Grazie ancora

Lavorare ad 1 MHz è una possibilità offerta dal chip ma non è detto che sia possibile in tutte le situazioni. Ad esempio, la libreria SoftwareSerial NON funziona a 1 MHz, il clock minimo supportato è 8 MHz. Va visto caso per caso.