Pages: 1 [2] 3 4 5   Go Down
Author Topic: Comportamento anomalo  (Read 2821 times)
0 Members and 1 Guest are viewing this topic.
cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

mettere un controlo che se quello che ricevi via seriale corrisponde al dato giusto esegue il comando
Reset_AVR();
Logged

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
int Led = 12;
int value =LOW;

int Csharp;
#include <avr/io.h>
#include <avr/wdt.h>

#define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {}

void setup() {
  

  Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
  pinMode(Led, OUTPUT);
}

void loop() {

  if (Serial.available() > 0) {

    Csharp = Serial.read();

    if (Csharp == 123) Reset_AVR();




      if (value == LOW) value = HIGH;
      else value = LOW;

      digitalWrite(Led, value);

}
delay(50);

  }



prova così
« Last Edit: June 03, 2009, 02:53:57 pm by garinus » Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma il reset lo si deve fare ogni qual volta si fa apre la porta...Come dovrei fare?!
Logged

Forum Administrator
Offline Offline
Newbie
*****
Karma: 3
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

Il computer effettua il reset in automatico ogni volta che apre la porta seriale per poter poi caricare del codice, tu non devi fare nulla.

Il tuo programma precedente resetta la scheda entro 30 millisecondi dal caricamento perche hai messo Reset_AVR() all'inizio del setup.
questo vuol dire che ogni programma carichi contiua a far resettare il processore appena parte.
da qui il lampeggio continuo che vedevi.

Il codice di garinus ti fa capire come va utilizzato correttamente Reset_AVR(). Il comando di reset viene eseguito solo quando mandi un carattere specifico, in questo caso il 123.



Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok Comincio ad inquadrare la situazione. A sto punto, quand è che devo inviare i caratteri 123 alla seriale, considerando che la mia applicazione ha un bottone premendo il quale cambio lo stato del LED 12?!
Logged

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 10
Posts: 3085
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Interessante il codice del reset... non ho mai capito a cosa serva resettare manualmente la scheda, ma e' interessante smiley

Per quello che riguarda il problema dello stato del led invece, secondo me resettare la scheda non ha proprio senso... Se capisco bene, tu vuoi fare in modo che un led cambi stato a seconda del fatto che premi un bottone, giusto?

Io credo che ti serva questo:
http://www.ladyada.net/learn/arduino/lesson5.html
a seconda di quante volte premi il bottone, il led cambia stato.
Piu' facile di cosi'...
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora ho provato il codice di garinus.
Il led non si accende.
Tramite c# mando sulla porta 123 con questa
Code:
serialPort1.Write("123");

ma non succede niente!

Per federico. Devo accendere e spegnere il led da pulsante dell'applicazione in c#.

Andrea
Logged

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 10
Posts: 3085
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa, ma questo pulsante e' connesso all'arduino? Oppure e' un bottone di una interfaccia grafica?
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' un pulsante di un interfaccia creata in C#.
L'obiettivo è pilotare arduino tramite un'applicazione c# che deve fare anche altre cose...!
Logged

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non sono praticissimo di c sul pc
però come invii il numero?
prova ad inviarlo come byte e a sostituire nel programma anzichè char metti byte
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
//configuring the serial port
            serialPort1.PortName = "COM3";
            serialPort1.BaudRate = 9600;
            serialPort1.DataBits = 8;
           // serialPort1.Parity = Parity.None;
            //serialPort1.StopBits = StopBits.One;

            //opening the serial port
            serialPort1.Open();

            //write data to serial port
            serialPort1.Write("123");

            //close the port
            serialPort1.Close();
Questo codice in c# è il codice relativo al pulsante che devo premere per fare accendere (se è spento) il led o che fa spegnere (se è acceso ) il led!

Helppp
Logged

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 10
Posts: 3085
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E qual'e' il codice sull'arduino?
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il codice sull'arduino è quello che è stato postato poco prima, al quale gli i  utenti gentilissimi di questo forum hanno aggiunto l'istruzione di reset.
Logged

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hai provato a vedere cosa riceve l'arduino?
prova ad usare il comando send del compilatore e prova scrivere "123" o il carattere ascii corrispondente.
vedi se funziona così
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Potresti spiegarti un po' meglio?!? Qual è l'istruzione che dovrei usare?!?
Logged

Pages: 1 [2] 3 4 5   Go Up
Jump to: