Show Posts
|
|
Pages: 1 2 [3] 4 5 ... 9
|
|
31
|
International / Hardware / Re: Ethernet shield e modem, problemi strani...
|
on: January 31, 2013, 05:56:14 pm
|
Controlla nel manuale del router se è possibile la comunicazione tra periferiche wired e wireless. A volte bisogna abilitare un'opzione nel router per farle dialogare.
Ma ti dirò, se collego ad esempio altri dispositivi ethernet, come una telecamere motorizzata, oppure un print server, nessun problema, solo lo shield non riesco a vedere.
|
|
|
|
|
32
|
International / Hardware / [RISOLTO] Ethernet shield e modem, problemi strani...
|
on: January 31, 2013, 05:08:37 pm
|
|
Salve a tutti!
Mi trovo di fronte ad un problema strano con la scheda ethernet e il mio modem router; in sostanza ho programmato Arduino, con uno sketch già pronto e per l'appunto "BarometricPressureWebServer", parametrizzato con IP e MAC.
Tutto perfetto, fino al collegamento in ethernet e da qui i problemi, della non visualizzazione dei dati tramite IP. Provo e riprovo, senza mai visualizzare niente e l'indirizzo non è irraggiungibile.A questo punto collego il mio pc direttamente al modem e quindi senza l'ausilio del Wifi ed ecco la mia bella pagina con i tre valori.
La domanda a questo punto è se devo buttare dalla finestra il mio Netgear n300 a causa di un eventuale BUG che inibisce la visualizzazione dello shield, con la modalità WIFI, o se è lo shield ethernet V3 ad avere qualche problema.
Ciao
|
|
|
|
|
34
|
International / Software / Re: Problema con librerie "SD.h" e "ChronoLCDShield.h"...
|
on: January 27, 2013, 11:29:54 am
|
Dovresti cambiare pin CS per lo shield LCD, però questo si traduce (oltre che nel cambiare leggermente la lib) nel modificare lo shield stesso... non so se sia fattibile senza danneggiare nulla. Inoltre andrebbe poi visto se la compilazione di tutte quelle librerie non esaurisca le risorse mnemoniche dell'Arduino.
Grazie per la tua risposta, penso proprio che cambierò il display eheh, questo lo userò per altri progettini
|
|
|
|
|
36
|
International / Software / Problema con librerie "SD.h" e "ChronoLCDShield.h"...
|
on: January 27, 2013, 11:02:57 am
|
Salve a tutti, Oggi sto provando a far coesistere due shield e per l'appunto "ethernet con SD" e un altro, "display LCD Nokia 6600". Il mio esperimento per adesso non va a buon fine, a causa di un probabile conflitto tra due librerie e per l'appunto quella "SD.h" e quella "ChronoLCDShield.h", per il funzionamento del display; in sostanza, appena includo nel progetto "SD.h", il display non visualizza niente, ma se la escludo, torna a funzionare. #include <SD.h> //se viene inclusa, il display non riporta alcuna scritta, funziona solo la gestione dei colori #include <ColorLCDShield.h> #define BACKGROUND BLACK #define C_COLOR RED #define H_COLOR BLUE #define M_COLOR GREEN #define S_COLOR YELLOW
int buttonPins[3] = {3, 4, 5}; LCDShield lcd;
void setup() { lcd.init(PHILLIPS); lcd.contrast(40); lcd.clear(BACKGROUND); }
void loop()
{ lcd.setStr("test", 4, 22, C_COLOR, BACKGROUND); }
Per capire la causa della non visualizzazione sul display, ho dovuto filtrare il contenuto del progetto originale. Un salutone e buona domenica
|
|
|
|
|
37
|
International / Software / Re: Gestione scrittura su SD senza odiosi scroll
|
on: January 26, 2013, 01:01:06 pm
|
Questo test if (!digitalRead(buttonPins[2], LOW) && (m == 1)) è errato. L'operatore "!" è l'operatore NOT, quindi nega la successiva cosa. !digitalRead(pin) è vero quando la lettura è LOW. Togli il "!" così che il test sia vero con pulsante su HIGH (penso che sia lo stato logico di NON PREMUTO, giusto)? Ok Leo adesso funziona!!: void loop()
{ //Premo il pulsante e scrivo su SD if (!digitalRead (buttonPins[2]) && (m == 0)){ //Premo il pulsante e scrivo lo stato Serial.println("PULSANTE PREMUTO"); Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("PULSANTE PREMUTO"); Prova.close(); m = 1; } if (digitalRead (buttonPins[2]) && (m == 1)){ //Rilascio il pulsante e aggiorno lo stato Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("PULSANTE RILASCIATO"); Serial.println("PULSANTE RILASCIATO"); Prova.close(); m = 0; } } Ho inserito anche due righe per controllare in realtime lo stato di funzionamento.
|
|
|
|
|
38
|
International / Software / Re: Gestione scrittura su SD senza odiosi scroll
|
on: January 26, 2013, 12:07:37 pm
|
Ecco il codice completo: #include <SD.h> #include <ColorLCDShield.h> int m = 0;
File testFile; File Prova; int buttonPins[3] = {3, 4, 5}; void setup() { for (int i=0; i<3; i++) { pinMode(buttonPins[i], INPUT); digitalWrite(buttonPins[i], HIGH); } Serial.begin(9600); Serial.print("Initializing SD card..."); pinMode(10, OUTPUT); if (!SD.begin(4)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); }
void loop()
{ //Premo il pulsante e scrivo su SD if (!digitalRead (buttonPins[2]) && (m == 0)){ Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura"); Prova.close(); m = 1; } if (!digitalRead(buttonPins[2], LOW) && (m == 1)){ //Riga errata, ma vorrei controllare il pulsante a zero comparandolo con lo stato Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura1"); Prova.close(); m = 0; } }
|
|
|
|
|
39
|
International / Software / Re: Gestione scrittura su SD senza odiosi scroll
|
on: January 26, 2013, 12:05:31 pm
|
Vuoi scrivere qualcosa sulla SD nel momento in cui viene premuto un pulsante e vuoi farlo solo per 1 volta, giusto? //Premo il pulsante e scrivo su SD if (!digitalRead (buttonPins[2])&& (m == 0)){ Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura"); Prova.close(); m = 1; Questo codice funziona però poi devi rimettere "m" a 0 per poter riscrivere sulla scheda. Oppure puoi fare un ciclo che, finché c'è la pressione del pulsante, non esce dal blocco che hai usato per scrivere: if (!digitalRead (buttonPins[2])){ Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura"); Prova.close(); while (!digitalRead(buttonPins[2])); } In questo modo dopo la scrittura ti metti in attesa del rilascio del pulsante. Questo ovviamente va bene se poi non devi fare altro. Ovviamente senza sketch completo non so se la soluzione può fare al caso tuo oppure no. Comunque si tratta sempre di usare una delle molteplici soluzioni visto che in programmazione non c'è un unico modo per fare 1 cosa. Ciao Leo e grazie per il tuo gentile intervento, quello che vorrei fare è questo, ma ci sono degli errori: { //Premo il pulsante e scrivo su SD if (!digitalRead (buttonPins[2]) && (m == 0)){ Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura"); Prova.close(); m = 1; } if (!digitalRead(buttonPins[2], LOW) && (m == 1)){ //E' una riga errata, ma vorrei controllare la mancata pressione inserendo un secondo testo Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura2"); Prova.close(); m = 0; } }
|
|
|
|
|
40
|
International / Software / Re: Gestione scrittura su SD senza odiosi scroll
|
on: January 26, 2013, 11:13:16 am
|
Forse ci sono quasi: imposto una variabile a zero, ma con la pressione del pulsante, la porto a "1", al ciclo successivo, la scrittura avverrà, se lo stato della variabile è a zero, ma con il pulsante premuto, di conseguenza non verrà scritto nulla sulla scheda, dovrei essere sulla strada buona? Esempio: Questo funziona: { //Premo il pulsante e scrivo su SD if (!digitalRead (buttonPins[2])&& (m == 0)){ Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura"); Prova.close(); m = 1; Ciao
|
|
|
|
|
41
|
International / Software / Re: Gestione scrittura su SD senza odiosi scroll
|
on: January 26, 2013, 10:56:55 am
|
memorizza lo stato precedente ed a ogni ciclo lo compari con quello attuale, se è differente lo scrivi altrimenti no. pseudodomanda-->pseudorisposta  Ciao, si hai ragione, te lo farei con un plc, ma con Arduino non riesco Senza vedere lo sketch non so cosa fai. Mi viene da pensare che non resetti la condizione per cui scrivi sulla SD, quindi ad ogni loop il codice scrive (giustamente) sulla schedina.
Se potessi pubblicare il programma forse si capirebbe meglio l'errore.
Ecco le due righe stupide di codice: //Premo il pulsante e scrivo su SD if (!digitalRead(buttonPins[2])){ Prova = SD.open("Prova.txt", FILE_WRITE); Prova.println("Test scrittura"); Prova.close(); Mi viene da pensare che dovrei comparare lo stato precedente con l'attuale, dovrebbe suonare un po' come: "adesso il pulsante è premuto e scrivi, ma se è ancora premuto al ciclo successivo, non scrivi", ma non so come dirglielo.
|
|
|
|
|
42
|
International / Software / Re: Gestione scrittura su SD senza odiosi scroll
|
on: January 25, 2013, 06:43:13 pm
|
cosa intendi per scroll io per esempio non riesco a scrivere all'inizio del file e come te sto facendo pratica tra eth e file sd intendi che ti scrive in sequenza ....tipo log delle variazioni di stato ? ciao
Ciao, si esatto, trattandosi di un ciclo di loop, la scritta viene registrata all'infinito, ma per adesso non so come dire al software di scrivere lo stato solo una volta.
|
|
|
|
|
43
|
International / Software / [RISOLTO] Gestione scrittura su SD senza odiosi scroll
|
on: January 25, 2013, 12:30:22 pm
|
Salve a tutti! In questi giorni stavo provando lo shield Ethernet ed in particolare, alcune funzioni che gestiscono l'SD. Non ho incontrato particolari difficoltà nello scrivere alcuni file, anche grazie l'aiuto del forum e degli esempi allegati, ma l'unico neo che non riesco a risolvere è la registrazione di una singola istanza sull' SD, senza ritrovarmi ogni volta la stessa scritta ripetuta all'infinito. L'esempio al quale faccio riferimento, potrebbe essere la registrazione della variazione di uno stato logico e di conseguenza, vorrei campionare solo una volta quello stato magari sul fronte di salita, per poi registrare il cambio stato sul fronte di discesa, senza però avere come risultato uno "scroll" su SD. Il diagramma di "flusso" dovrebbe essere questo: stato "x" alto---> registro su SD "stato alto" (senza scroll!!eheh)nel frattempo controllo se "x" è cambiato di stato e se vero---->registro "stato basso" (senza scroll!!)e così via Mi servirebbe solo qualche dritta, per sbloccare questa volta, il mio loop mentale eheh  Ciao a tutti e buona serata!
|
|
|
|
|