Show Posts
Pages: 1 ... 12 13 [14] 15 16 ... 399
196  International / Software / Re: Implementazione tasto invio on: July 15, 2014, 03:27:38 am
L'ho fatto anche io ... funziona tutto meno ... la scrittura su SD ... devo capire perché la :

Code:
myFile = SD.open("test.txt", FILE_WRITE);

ritorna 0 ovvero FALSE ovvero ... non apre il file ...  smiley-roll

Guglielmo
197  International / Software / Re: Implementazione tasto invio on: July 15, 2014, 02:59:45 am
... non sarebbe la prima volta che la Ethernet crea dei casini ...  smiley-roll

Solo per fare una prova ...
... invece di usare la libreria PS2Keyboard.h (togli l'include) ... prova a leggere i caratteri dalla seriale (invece che dalla tastiera PS2) con le :

- Serial.available()
- Serial.read()

... e vedi se così funziona.

Non vorrei che la PS2Keyboard ... usi interrupt che vanno in conflitto, in qualche strano modo, con la Ethernet ...  smiley-roll

Ethernet ed SD ... funzionano ... questo è certo, quindi ...

Guglielmo
198  International / Software / Re: Implementazione tasto invio on: July 15, 2014, 02:53:59 am
Se hai verificato che c vale 0x0D (... e me lo hai detto due post fa) ... la sola possibilità è che ... ci sia un errore di battitura nel if ... perché capisci da solo che quello che scrivi è IMPOSSIBILE   smiley-eek smiley-eek smiley-eek

Code:
if ((c == 0x0D) || (i == (SIZE - 1))) {

... non è che possono esserci molti dubbi eh !!! ... o  c == 0x0D  oppure  i ha raggiunto il valore (SIZE -1) ...  smiley-lol

Guglielmo


199  International / Software / Re: Implementazione tasto invio on: July 15, 2014, 02:32:32 am
Quindi, modifica l'IF :

Code:
if ((c == 0x0D) || (i == (SIZE - 1))) {

... e, volendo, puoi anche aggiungerci, subito dopo, una Serial.print() per indicare che ci sei entrato ...
... così ti levi ogni dubbio  smiley-lol

Guglielmo
200  International / Software / Re: Implementazione tasto invio on: July 15, 2014, 02:15:26 am
Ho provato a compilare il codice Guglielmo e l'ho anche testato.....purtroppo senza l'utilizzo di un ciclo While la funzione leggi tastiera non vede minimamente il CR!

Ti rendi conto che ... NON è possibile ???  Basta che leggi il codice ... c'è lo stesso tuo if ... il while() NON serve assolutamente a nulla, tanto sempre un carattere per volta devi leggere ...

Modifica il Serial.print che segue la lettura del carattere in :

Code:
Serial.print(c, HEX);

... così hai la stampa esatta in esadecimale del carattere che legge e vedi cosa in realtà legge quando premi ENTER (... perché non sono del tutto convinto che sia CR smiley-roll) !

Guglielmo
201  International / Hardware / Re: Garanzia Arduino? on: July 14, 2014, 01:57:04 pm
A questo punto, se sei sicuro di non aver fatto contatti accidentali o altri danni ... l'unica è contattare chi te l'ha venduta spiegando il problema e chiedendo la sostituzione in garanzia !

Guglielmo
202  International / Hardware / Re: Garanzia Arduino? on: July 14, 2014, 10:35:46 am
Alimento la breadboard con 5v e gnd mentre la bobina del relè la collego al + 12v

Quindi suppongo via USB ...
... le masse sono tutte in comune (sia quella di Arduino che quella dell'alimentazione a 12V) ???

Guglielmo
203  International / Software / Re: Implementazione tasto invio on: July 14, 2014, 10:32:31 am
Senti, ho provato a sistemare un po' il codice, puoi provarlo e vedere che problemi da ?

Code:
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include <PS2Keyboard.h>
//
const byte DATA  = 2;
const byte CLOCK = 3;
const int  SIZE  = 300;
//
PS2Keyboard keyboard;
//
char c;
char temp[SIZE];
char temp1[SIZE];
int i;
//
File myFile;
//
byte mac[]={0x90, 0xA2, 0xDA, 0x0F, 0x41, 0xD3};
IPAddress ip (192,168,1,238);
EthernetServer server(80);
//
//
void setup() {
   delay(1000);         // tempo per evitare possibili problemi con il bootloader
   //
   temp[0] =0x00;
   temp1[0]=0x00;
   i = 0;
   //
   pinMode(4,OUTPUT);
   pinMode(10, OUTPUT);
   digitalWrite(4, HIGH);
   digitalWrite(10, HIGH);
   //
   Serial.begin(9600);
   Serial.println(F("Inizializzazione sistema ... attendere prego ..."));
   Serial.println();
   //
   Ethernet.begin(mac, ip);
   server.begin();
   Serial.print(F("Inizializzazione Ethernet completata, IP: "));
   Serial.println(Ethernet.localIP());
   Serial.println();
   //
   if (!SD.begin(4))
   {
      Serial.println(F("Inizializzazione SD card fallita ..."));
      return;
   }
   else {
      Serial.println(F("Inizializzazione SD card completata"));
   }
   //
   if (SD.exists("test.txt")) {
      SD.remove("test.txt");
   }
   //keyboard.begin(DATA, CLOCK, PS2Keymap_US);
   //keyboard.begin(DATA, CLOCK, PS2Keymap_German);
   keyboard.begin(DATA, CLOCK, PS2Keymap_French);
   Serial.println(F("... sistema inizializzato."));
   Serial.println(F("Immettere un messaggio ... CR per registrare"));
}
//
//
void loop() {
   //
   // verifica se c'è una connessione su ethernet ...
   EthernetClient client = server.available();
   if (client) {
      boolean currentLineIsBlank = true;
      while (client.connected()) {
         if (client.available()) {
            char c = client.read();
            if (c == '\n' && currentLineIsBlank) {
               client.println("HTTP/1.1 200 OK");
               client.println("Content-Type: text/html");
               client.println();
               client.println(temp1);
               break;
            }
            if (c == '\n') {
               currentLineIsBlank = true;
            }
            else if (c != '\r') {
               currentLineIsBlank = false;
            }
         }
      }
      delay(1);
      client.stop();
   }
   //
   // legge la tastiera e, se occorre, salva su SD ...
   leggiTastiera();
}
//
//
void leggiTastiera() {
   // verifica se c'è un tasto disponibile ...
   if (keyboard.available()) {
      // ... si leggilo e stampalo
      c = keyboard.read();
      Serial.print(c);
      // verifica se è CR o se il buffer è pieno ...
      if ((c == PS2_ENTER) || (i == (SIZE - 1))) {
         // SI, salva la stringa e azzera quella di lavoro
         temp[i] = 0x00;
         i = 0;
         strcpy(temp1, temp);
         //
         myFile = SD.open("test.txt", FILE_WRITE);
         if (myFile) {
            Serial.print(F("Scrivo su SD: "));
            Serial.println(temp);
            myFile.println(temp);
            myFile.close();
         }
      } else {
         // NO, salva il carattere e incrementa il puntatore
         temp[i] = c;
         i++;
      }
   }
}

Ah ... ho ottimizzato alcune cose ... ma ovviamente non l'ho potuto provare smiley-wink

Guglielmo
204  International / Software / Re: Implementazione tasto invio on: July 14, 2014, 09:44:25 am
Non è possibile ... le due librerie usano pin differenti ...
... il pin 4 per selezionare la SD, il pin 10 per selezionare la Ethernet.

Inoltre, in generale, sono usati i pin 11, 12 e 13 che sono il vero e proprio bus SPI (MOSI, MISO e SCK).

Se vuoi stare tranquillo, nel setup(), come prima cosa, dichiara il pin 4 e 10 come output e mettili entrambi HIGH. Saranno poi le librerie a metter LOW e ripristinare HIGH il pin di loro interesse quando gli serve di accedere all'HW ... la SD userà il 4 e la Ethernet il 10.

Purtroppo ... una tastiera PS2 proprio non ce l'ho  smiley-confuse ... altrimenti provavo io ...  smiley-roll

Guglielmo


205  International / Generale / Re: energia negativa in positiva e viceversa on: July 14, 2014, 08:52:54 am
Perdona ma ... questo è veramente TROPPO ...

Prenditi un bel libro di elettronica e studia le BASI !!!

Ok la semplicità, ok l'open-source, ok tutto, ma c'è un limite ... come pretendi di avvicinarti al mondo Arduino (o a qualsiasi altra cosa) senza prima un minimo di BASI ???  smiley-eek smiley-eek smiley-eek

Guarda ... fai questa ricerca con Google "imparare l'elettronica partendo da zero pdf" ... sicuramente troverai un bel libro, in .pdf, che pubblico molto tempo fa Nuova Elettronica.

Anzi, guarda, lo trovi anche su Scribd ... QUI ... scaricatelo !

E' veramente un libro BASE ... studiatelo e poi ne riparliamo smiley

Guglielmo
206  International / Hardware / Re: Garanzia Arduino? on: July 14, 2014, 08:10:45 am
Ancora non ci hai detto ...

Come stai inoltre alimentatndo il tutto ???

Guglielmo
207  International / Software / Re: Scrivere dati da Labview a Arduino Uno on: July 14, 2014, 08:08:15 am
Direi che la cosa migliore è che fai una ricerca su Google per "labview write serial port" e ti scarichi qualche esempio ...  smiley-roll

Guglielmo
208  International / Hardware / Re: Garanzia Arduino? on: July 14, 2014, 06:29:26 am
Metti lo schema perché ... quello che scotta è U5 nello schema QUI ed è un doppio operazionale (U5A e U5B) e ... devi averlo danneggiato altrimenti difficile che scaldi.

Come stai inoltre alimentatndo il tutto ???

Guglielmo
209  International / Hardware / Re: Garanzia Arduino? on: July 14, 2014, 06:23:33 am
... Stavo montando relè 12 volt controllato da telecomando infrarossi. ...

Schema ? Come stavi facendo i collegamenti ? Hai fatto qualche corto ?

Guglielmo
210  International / Hardware / Re: Garanzia Arduino? on: July 14, 2014, 05:56:09 am
Sistema operativo ???  Versione dell'IDE ??? Come hai installato i driver ???

Se non ci dai informazioni come possiamo aiutarti ???

Guglielmo
Pages: 1 ... 12 13 [14] 15 16 ... 399