Ciao a tutti, questo è il mio primo post.
Ho provato a fare uno sketch per poter comandare via web l'accesione di 16 led (in realtà vorrei molte più uscite ma per adesso sto provando con 16 utilizzando lo shifting).
Non riesco a capire perchè se carico lo sketch su arduino quando ho 16 led da pilotare, non riesco più a connettermi con all'indirizzo della ethernet shield. Se cancello la parte di sketch ottenendo circa una decina di uscite allora tutto funziona.
Io ho attribuito il problema ai troppi "IF" usati nello sketch ma non ne sono sicuro. Qualcuno ha qualche idea sul problema e su come potrei risolverlo? inoltre c'è un altro modo per poter snellire lo sketch usando per esempio altre funzioni tipo "for" o "switch case" o altro e in che modo?
Allego lo sketch
Grazie in anticipo.
Ciao
Grazie per la celere risposta. Ad ogni modo uso Arduino Uno e ethernet shield.
Sono proprio alle prime armi con il mondo di arduino dato che ce l'ho da 1 settimana. Saresti così gentile da postarmi un piccolo esempio usando PROGMEM relativo al mio sketch? Mi viene molto più facile capire e imparara da degli esempi già fatti...
Altrimenti se mi puoi dare delle dritte...
Grazie intanto ancora
Ciao
Ciao, usare PROGMEM per archiviare le stringhe in flash ti aiuta a risparmiare RAM, è utile se hai tante stringhe, ma per poter usare le stringhe devi recuperala dalla flash e caricarle in RAM, ad ogni modo provo a farti un piccolo esempio di come lo sto usando io, spero che il codice sia chiaro
Grazie, con più calma cercherò di capire come utilizzare questo progmem (a dir la verità non mi è molto chiaro). Mi domandavo però una cosa, se sono quelle stringhe ad occupare memoria e quindi acrearmi il problema, teoricamente potrei risolverlo scrivendo quelle stringhe su una pagina web creata e salvata in una scheda sd, confermate? Se fosse cosi quindi potrei aggiungere molte più uscite...
Infatti credo che farò come dici tu pablos...un po' alla volta poi vedremo cosa ne uscirà
Ma non c'è un modo per evitare tutti quei "if" tipo no so utilizzando "for". Posto qui un esempio di concetto (lo so che è sbagliato) ma è per cercare di farmi capire:
Al posto di progmem puoi usare anche la sintassi F(. Anche cosí vengono messi i string nella memoria flash.
Sintassi:
Serial.print(F("This string will be stored in flash memory"));