Go Down

Topic: Blocco esecuzione Arduino (Read 1 time) previous topic - next topic

pines

Mar 05, 2011, 11:28 am Last Edit: Mar 05, 2011, 11:31 am by pines Reason: 1
Ciao a tutti sono nuovo di questo progetto interessante.
Ho comprato un arduino 2009 compatibile, Luigino328 PROTOTYPE alla robotitaly in piu ho preso l'ethernet shield la 1.1.

Voglio fare una piccola applicazione per tenere sotto controllo le temperature del server ed accendere delle ventole in automatico, con la possibilità di vedere tramite intefaccia web lo stato dei rele e le temperature.
Fin qui tutto bene sono riuscito pure a memorizzare le temperature in un database MySQL, nella rete ci sono tanti esempi.

Per avere piu sensori ho preso 5 DS18S20 1-wire, caricando un piccolo prg me li identifica e riesco a vedere le temperture,
pero se implemento il codice nel programma per la gestione delle temperature, me lo compila senza errori me lo carica ma non parte o meglio, si ferma alla funzione setup al caricamento di sensors.begin();.
Pero se carico singolarmete funzionano alla perfezione.
Non so se sbaglio qualcosa io oppure cè qulche bug.
Uso la versione di arduino 22.
eccol le librerie che utilizzo.
Code: [Select]
#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>
#include <Udp.h>

#include <OneWire.h>  ho scaricato la 2.0 dal sito ???
#include <DallasTemperature.h>


Magari piu tardi posto il codice, grazie per l'aiuto.

Volevo anche implementare il modulo gsm per farmi spedire sms in caso di alte temperature,mancanza rete ecc., ma comincio ad essere un po negativo...

uwefed

Aspettiamo con ansia il resto del codice....
Ciao Uwe

lesto

già, server il resto del codice almeno fino all'errore (compreso di variabili globali), e mi viene in mente per ora, dando per scontato un tuo codice esatto, un uso troppo grande di ram
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

pines

Grazie per l'aiuto.
Il codice compilato occupa 16k su 30k.

Non mi fa caricare il file mi dice che la directory upload e piena :) poi inserendolo come codice mi dice che i caratteri sono max9500,
il codice è di 13k.
Inserisco il link esterno. http://www.pinoc.it/public/web.txt

lesto

Quello è lo spazio occupato dal programma, io intendevo lo spazio occupato in ram dalle variabili, ma non mi sembra.
Non è che la etch e 1-wire usano gli stessi pin?
prova a spostare il begin del sensore PRIMA di quelli dell'eth
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

pines


Quello è lo spazio occupato dal programma, io intendevo lo spazio occupato in ram dalle variabili, ma non mi sembra.
Non è che la etch e 1-wire usano gli stessi pin?
prova a spostare il begin del sensore PRIMA di quelli dell'eth


Ho provato sembra che non si blocca ora lo lascio un po funzionare. Grazie per la dritta.
A proposito per vedere la ram libera cè solo la funzione freeram nelle librerie sdfatutil ?

lesto

in effetti sì, è la prima volta che la vedo... comunque non serve che ti porti dietro tutta la libreria, il codice della funzione è questo:
però ammetto di non sapere come funziona
Code: [Select]

/** Return the number of bytes currently free in RAM. */
static int FreeRam(void) {
  extern int  __bss_end;
  extern int* __brkval;
  int free_memory;
  if (reinterpret_cast<int>(__brkval) == 0) {
    // if no heap use from end of bss section
    free_memory = reinterpret_cast<int>(&free_memory)
                  - reinterpret_cast<int>(&__bss_end);
  } else {
    // use from top of stack to heap
    free_memory = reinterpret_cast<int>(&free_memory)
                  - reinterpret_cast<int>(__brkval);
  }
  return free_memory;
}
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

pines

Purtroppo parte ma quando si fà una richiesta web si blocca, a volte anche dopo due click.
piu che altro utilizzo il pulsante per l'accensione o lo spegnimento di un rele.
Se il programma funziona da solo senza richieste web lui continua, l'ho provato per circa 2 ore, ma appena si clicca sul pulsante, lo esegue poi zac si blocca.
La cosa che ho notato e che quando spingo il pulsante off, il programma , quando nn si blocca, rientra in setup ,
questo è normale ?
@lesto
grazie per la funzione l'ho gia implementata mi restitusce 160 (saranno Byte ).
I pin per la ethernet sono 10-11-12-13 e non li  utilizzo.

pines


lesto

riempi il programma di println(); finchè non capisci dove si blocca, probabilmente capirai anche il perchè
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

pines


riempi il programma di println(); finchè non capisci dove si blocca, probabilmente capirai anche il perchè

Ok proverò .

Grazie della disponibilità.

lesto

se becchi dove si blocca e non capisci perchè scrivi pure, che debugghiamo insieme il codice (però non ho una ethernet shield e quindi potrò solo darti suggerimenti)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up