criscap85 (Normal User)
Pro
Messaggi: 99
Iscritto: 29/01/2012
|
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:
Codice sorgente - presumibilmente C++ |
/* 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
Grazie
In Attesa di una Risposta.
Cordialmente
Cris
PS: Ho cercato nei forum di arduino ma non ho trovato niente ed è per questo che sono venuto qui .
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!!!
Ultima modifica effettuata da criscap85 il 29/01/2012 alle 8:46 |
|
Snogar (Normal User)
Pro
Messaggi: 145
Iscritto: 09/01/2012
|
Scusa ma esiste un wrapper per cui puoi utilizzare il C# per riprogrammare arduino???
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
|
|
Qwertj (Dev Team)
Guru
Messaggi: 678
Iscritto: 30/05/2011
|
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.
|
|
crybot (Member)
Pro
Messaggi: 115
Iscritto: 13/09/2011
|
ho appena creato un comunicatore seriale in C#, e` attualmente in certificazione, potrebbe aiutarti nello scopo...
devi solo aspettare
|
|
criscap85 (Normal User)
Pro
Messaggi: 99
Iscritto: 29/01/2012
|
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 . Cmq grazie delle risposte intanto.
|
|
criscap85 (Normal User)
Pro
Messaggi: 99
Iscritto: 29/01/2012
|
|
|
torn24 (Normal User)
Pro
Messaggi: 156
Iscritto: 04/01/2008
|
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 .
http://it.emcelettronica.com/comunicazione-seriale-c
|
|
Qwertj (Dev Team)
Guru
Messaggi: 678
Iscritto: 30/05/2011
|
Postato originariamente da torn24:
Ciao ,premetto che sono un principiante , ma vorrei dire la mia .
|
XD non ti preoccupare che nessuno t'ammazza (se non spari cazzate, ma vedo che non ne spari!)
Postato originariamente da torn24:
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 .
http://it.emcelettronica.com/comunicazione-seriale-c |
Già detto! |
|