Oppure

Loading
29/01/12 7:33
criscap85
Ciao ragazzi, sono venuto qui perchè sentivo la speranza di un aiuto. Allora io conosco il linguaggio C# ma non ho mai lavorato con la porta USB e ARDUINO UNO. Siccome devo creare un sistema che memorizza nel database (come si memorizza lo so fare benissimo) l'attivazione e la successiva disattivazione delle pompe del riscaldamento a pavimento della nuova casa che:

1) Riceve le stringhe da ARDUINO UNO mediante USB che utilizza la porta COM3 come:

-> P1-1 sta per indicare che la POMPA 1 è stata attivata
-> P1-0 sta per indicare che la POMPA 1 è stata disattivata
-> P2-1 sta per indicare che la POMPA 2 è stata attivata
-> P2-0 sta per indicare che la POMPA 2 è stata disattivata
-> P3-1 sta per indicare che la POMPA 3 è stata attivata
-> P3-0 sta per indicare che la POMPA 3 è stata disattivata

2) Una volta ricevuta la stringa la memorizzo nel db che so come fare.

Fin qui ci siamo:-?

Bene

Io ho implementato il seguente codice in C per arduino (per chi fosse interessato può copiarlo liberamente è open source!!! :k:):

/* GESTIONE POMPE ARDUINO */

const int input_pompa_1 = 2;
const int input_pompa_2 = 3;
const int input_pompa_3 = 4;
const int led_pompa_1 = LOW;
const int led_pompa_2 = LOW;
const int led_pompa_3 = LOW;

int ingresso_precedente1 = 0;
int ingresso_precedente2 = 0;
int ingresso_precedente3 = 0;
int ingresso_attuale1 = 0;
int ingresso_attuale2 = 0;
int ingresso_attuale3 = 0;

void setup() {
  
  pinMode(input_pompa_1, INPUT);
  pinMode(input_pompa_2, INPUT);
  pinMode(input_pompa_3, INPUT);
  pinMode(led_pompa_1, OUTPUT);
  pinMode(led_pompa_2, OUTPUT);
  pinMode(led_pompa_3, OUTPUT);
  
  Serial.begin(9600);
  
}

void loop() {
  
   if(digitalRead(input_pompa_1) == LOW)
   {
     ingresso_attuale1 = 1;
   }
   else
   {
     ingresso_attuale1 = 0;
   }
   
   if(ingresso_attuale1 != ingresso_precedente1)
   {
     delay(1000);
     if(ingresso_attuale1 == 0)
     {
       Serial.print("P1-0");
     }
     else
     {
       Serial.print("P1-1");
     }

     ingresso_precedente1 = ingresso_attuale1;
   } 
 
 if(digitalRead(input_pompa_2) == LOW)
   {
     ingresso_attuale2 = 1;
   }
   else
   {
     ingresso_attuale2 = 0;
   }
   
   if(ingresso_attuale2 != ingresso_precedente2)
   {
     delay(1000);
     if(ingresso_attuale2 == 0)
     {
       Serial.print("P2-0");
     }
     else
     
     {
       Serial.print("P2-1");
     }

     ingresso_precedente2 = ingresso_attuale2;
   }   
   
   if(digitalRead(input_pompa_3) == LOW)
   {
     ingresso_attuale3 = 1;
   }
   else
   {
     ingresso_attuale3 = 0;
   }
   
   if(ingresso_attuale3 != ingresso_precedente3)
   {
     delay(1000);
     if(ingresso_attuale3 == 0)
     {
       Serial.print("P3-0");
     }
     else
     {
       Serial.print("P3-1");
     }
     
     ingresso_precedente3 = ingresso_attuale3;
   } 
}


Voi sareste in grado di indicarmi come leggere dalla USB tramite interfaccia
e visualizzare ogni stringa su tre text box che ciascuna rappresenta la pompa 1, pompa 2, pompa 3:-? :k:

Grazie
In Attesa di una Risposta. :hail:
Cordialmente
Cris

PS: Ho cercato nei forum di arduino ma non ho trovato niente ed è per questo che sono venuto qui :heehee: .

Però per darvi un input ho trovato questo codice che funziona solamente con la console. E quello che vorrei fare è semplicemente trasformarlo in VISUAL C# capito?
Grazie ancora!!! :D
Ultima modifica effettuata da criscap85 29/01/12 7:46
aaa
29/01/12 9:49
Snogar
Scusa ma esiste un wrapper per cui puoi utilizzare il C# per riprogrammare arduino??? :-?
aaa
29/01/12 10:37
Thejuster
Esiste NetDuino

netduino.com/
mire.forumfree.it/ - Mire Engine
C# UI Designer
29/01/12 12:23
Qwertj
Prova a cercare qualcosa sulle SerialPort, anche se credo ci sia da fare qualcosa di particolare per far sentire le USB come seriali.
Comunque, con quella classe lavori a basso livello e riesci a leggere e a scrivere sulla porta che vuoi.
aaa
29/01/12 13:03
crybot
ho appena creato un comunicatore seriale in C#, e` attualmente in certificazione, potrebbe aiutarti nello scopo...
devi solo aspettare ;)
aaa
29/01/12 17:14
criscap85
Ohi ciao ragazzi! Scusatemi ero alle prese con LabView. Allora che cosa è un wrapper? Netduino non ho voglia di comprarlo. Forse mi sono spiegato male avete presente quel codice che ho trovato in giro? Ecco quello è fatto per l'applicazione da console....è possibile convertirla in VISUAL C# da C#? Ovvero con l'interfaccia? Più chiaro di così non posso essere :D . Cmq grazie delle risposte intanto.
aaa
29/01/12 17:18
criscap85
Ehm manca il codice che non vi ho inserito. Quello che ho inserito nel primo post l'ho fatto io.

Ecco fate riferimento a questo:
jtoee.com/2009/02/talking-to-an-arduino-from-net-c/

Grazie :D
aaa
30/01/12 14:43
torn24
Ciao ,premetto che sono un principiante , ma vorrei dire la mia .
Arduino comunica con la porta seriale , di conseguenza devi creare un programma
che comunichi con tale porta .
In c sharp si può disporre dell controllo serialPort che dispone di metodi
write e read
una volta letti i dati e memorizzati in variabili non è un problema mostrarli in
una textbox !

ti posto un link dove spiega con semplicità come scrivere sulla serialport ,per
leggere rimane invariato userai al posto del metodo write il metodo read .
it.emcelettronica.com/…
aaa