arduino leest geen info van tty als serial monitor uit staat

Arduino specifieke Software
Berichten: 4
Geregistreerd: 08 Jan 2016, 13:19

arduino leest geen info van tty als serial monitor uit staat

Berichtdoor zaphod » 08 Jan 2016, 13:37

Hoi,

ik heb een programma geschreven dat van de (USB) seriele poort van een linux machine een getal leest, en dat dan naar een analoge uitgang schrijft.
Als ik de linux machine bijvoorbeeld elke 2 seconden een waarde naar de tty poort laat sturen zoals met dit voorbeeld script:

# Send message every 2 seconds.
while [ 1 ];
do
echo 100 >/dev/ttyUSB1
sleep 2
done

dan werkt dat prima. Ik zie de waarde netjes op de analoge uitgang van de arduino verschijnen.
Maar, dat is alleen zo zolang de IDE open staat EN ik in de IDE de Serial Monitor aanzet.

Zodra ik het Serial Monitor scherm sluit, zie ik nog wel dat er op de seriele ingang data binnenkomt ( ik laat een LED knipperen als er data binnenkomt ), maar de waarden komt er op de analoge output nog alleen een waarde terecht die correspondeert met het getal 0.

Ik wil dit natuurlijk kunnen laten werken zonder steeds de IDE te moeten opstarten.

Ik heb nog een poging gedaan vooralleer ik iets naar de seriele poort stuur, die op 9600 baud te zetten, zoals in :

# Initialize TTY
stty -F /dev/ttyUSB1 9600

# Send message every 2 seconds.
while [ 1 ];
do
echo 100 >/dev/ttyUSB1
sleep 2
done

Maar dat loste het probleem niet op. Ook dan zag ik alleen een waarde corresponderend met 0 op de analoge uitgang.

Ook als ik het scriptje als root draai, werkt dit niet, ofwel zie ik output = 0 op de analoge output.

Iemand enig idee?

Advertisement

Berichten: 4
Geregistreerd: 08 Jan 2016, 13:19

Re: arduino leest geen info van tty als serial monitor uit s

Berichtdoor zaphod » 08 Jan 2016, 17:59

Hmm, het lijkt er op dat ik een oplossing gevonden heb.

Het blijkt zo te zijn, dat de arduino uno (en dat geldt ook voor sommige andere types) een reset krijgt, zodra je data op de seriele lijn zet.
Dat gebeurt dus bij het schrijven van getalletjes naar het USB device, zoals ik dat doe in mijn while lus.

Kennelijk gebeurt dat niet bij het openen van de seriele monitor.

Het fijne begrijp ik er nog niet van, maar door de resetlijn met een condensator van 100 nano Farad naar GND en een 10kOhm weerstand
naar de +Vcc aansluiting te verbinden, voorkom je dat resetgedrag.

Lees http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection voor meer uitleg.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: alajowapopimi, Google [Bot] en 100 gasten