Pages: [1]   Go Down
Author Topic: Blocco esecuzione Arduino  (Read 992 times)
0 Members and 1 Guest are viewing this topic.
Pontecagnano (SA)
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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...
« Last Edit: March 05, 2011, 05:31:14 am by pines » Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 257
Posts: 21473
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pontecagnano (SA)
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley 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
Logged

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pontecagnano (SA)
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?
Logged

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
/** 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;
}
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pontecagnano (SA)
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Pontecagnano (SA)
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

up
Logged

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pontecagnano (SA)
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Grazie della disponibilità.
Logged

0
Online Online
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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)
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: [1]   Go Up
Jump to: