Go Down

Topic: Help... da Arduino uno a ATMEGA328 (Read 3501 times) previous topic - next topic

leo72


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

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).  ;)

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

leo72

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

leo72


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.

Quote

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.

Michele Menniti


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

è da intendersi in senso di opportunità; se lavori col micro impostato a 1MHz hai la possibilità di alimentarlo a 3,3V ma naturalmente nessuno ti impedisce di usare comunque i 5V; queste info si ricavano anche dai data-sheet originali ATMEL
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Eccoci... allora è arrivato il tanto amato MODULO GSM della EF COM.  Il pcb è ben fatto, l'oggetto è gradevole e perfettamente adattabile al mio Arduino uno.
Iniziano i primi problemi :)
Seguendo questo wiki http://www.elecfreaks.com/wiki/index.php?title=EFCom_GPRS/GSM_Shield
riesco (dopo svariate prove e cambiando i jumpers) a farmi rispondere ok dal modulo tramite comandi AT.
Usando questo sketch
Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}

riesco a farlo comunicare... ma ahimè quando digito AT (da un monitor seriale per mac) in automatico mi ritorna un duplicato, >> A A T T , in pratica mi duplica la mia digitazione... ovviamente non posso fare altro che AT perchè appena provo a digitare un comando piu lungo addio mondo e ritorna errore... Come mai?? Cosa potrei utilizzare per fare una prova rapida per l'invio di un SMS ?

Grazie

Aggiornamento... anche se duplica le lettere FUNZIONA  :) :) :)

Adesso però volevo chiedervi una cosa, come faccio a farlo partire tramite board? cioè a far accendere il modulo dalla board arduino? Perchè con i tasti è una menata assurda, devi resettare e premere al volo pwr e non sempre hai successo.... GRAZIE

PaoloP

Controlla se il modulo ha dei pin di reset o enable attivabili da Arduino.

Fatto!! Con il codice in allegato sotto funziona perfettamente !!   

Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

  int pwr = 6;
 
void setup()
{
  mySerial.begin(19200);                   
  Serial.begin(19200);                     
  pinMode(pwr, OUTPUT);                     
  digitalWrite(pwr, HIGH);                 
  delay(1000);                             
  digitalWrite(pwr, LOW);                   
}

void loop()
{
/*
  if (mySerial.available()) {                           
    mySerial.write("AT+CMGF=1\r");                     
    delay(1000);                                       
    mySerial.write("AT+CMGS=\"+39NUMERO\"\r");     
    delay(1000);                                       
    mySerial.write("SMS DI PROVA\r");                 
    mySerial.write("\x1A");                           
    delay(1000);
   
  }
*/

}


Informazione... come faccio adesso a fargli Leggere un sms che gli invio io? esiste un comando AT che lo fa?

gpb01

#25
Apr 20, 2013, 03:34 pm Last Edit: Apr 20, 2013, 03:36 pm by gpb01 Reason: 1

.....
Informazione... come faccio adesso a fargli Leggere un sms che gli invio io? esiste un comando AT che lo fa?


Bé ... qui però la vecchia buona  R T F M  ci stà tutta ...  (e se non sai cosa significa, cerca su google RTFM)  ]:D ]:D ]:D

(... o quanto meno provaci, poi chiedi aiuto ;) )

@Leo : Leo perdonami ...non sono riuscito a trattenermi ...

Guglielmo
Search is Your friend ... or I am Your enemy !

tfm read yet :)
Hai ragione scusa :) devo provare ancora... chiederò aiuto se non mi dovesse riuscire

Adesso una domandina veloce ma dai comandi AT cosa c'è di errato qui sotto?
  if (mySerial.available())
  mySerial.write("ATD+391234567;\r");
  delay(10000);
  mySerial.write("ATH");

Non fa la chiamata telefonica :(

gpb01

... ma la ATD cosa ti ritorna come risposta (... perché credo dovrebbe ritornare un qualche cosa che indica l'esito/errore della chiamata) ?

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

... non conosco il modulo, ma sei sicuro di quel \r dopo il punto e virgola  in : mySerial.write("ATD+391234567;\r") ? E' veramente richiesto ?

Perché dando un occhiata la manuale del SIM900, nel comando ATD, leggo : "This Command may be aborted generally by receiving an ATH Command or a character during execution."

Non vorrei che lo interpretasse come un carattere di Abort ...

Guglielmo
Search is Your friend ... or I am Your enemy !


Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy