Sida 5 av 6

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:24:13
av BJ
Ja, det gör den faktiskt, utan att Tx blinkar.
Startar man serie-terminalen så börjar Tx
blinka också. Stänger man av terminalen
så stannar Tx och lyser efter en stund,
men lysdiod 13 fortsätter att blinka.

Så jag hade delvis fel. :!:

Men frågan är varför den inte sänder
från början.

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:30:38
av BJ
SeniorLemuren:
Då kanske det är fel på min Arduino... :humm:

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:33:00
av sodjan
Antagligen så har din serieutgång inte rätt insignal för att sända.
När du startar monitorn så får den det. Det kanske kan skilja mellan
olika Arduino modeller också. Så summan är att programmet snurrar
på som det ska, men utgången från UART'en är avstängd, som det verkar.

Forts... Förr, då det var "riktiga" serieportar (med 25-pinnars kontakter)
så fanns den flera olika signaler utöver TX/RX. Dessa användas av de båda
sidorna för att meddela om man var beredd att ta emot data o.s.v. I dag då
man emulerar en serieport över USB, så emulerar man även en eller flera av
dessa kontrollsignaler. Det kan vara något sådant som spökar.

Och varför ska man sända något om det ändå inte finns någon som lyssnar?
Lika bra att inte sända något alls...

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:34:27
av Borre
Ja du ser. Då har du lärt dig hur man lätt kan felsöka genom att blinka en lysdiod, det här kan du nyttja i väldigt många situationer där du vill veta vad som körs eller inte körs.

Kolla schemat för Uno så ser du att lysdioderna är kopplad till Atmegan som har hand om USB-UART. Sannolikt (gissar kag) blinkar den inte några lysdioder när en öppen USB-anslutning inte finns, trots att Atmegan du programmerar skickar data för fullt.

Anledningen till att lemurens klon blinkar sina lysdioder kan bero på att det är kopplat annorlunda, använder annan krets för Usb osv. Har tom sett kort där lysdioderna istället suttit direkt på UART-pinnarna

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:39:02
av sodjan
Ja, att blinka en lysdiod för att indikera om programmet alls kör,
hör till kurs 1A inom mikrokontrollers... :-) En del snitsar till det
med olika blink mönster och hastigheter för att meddela olika saker.

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:47:39
av BJ
Sant. :)

Men det går inte att skicka till
Arduinon heller, om jag inte knuffar igång
sändningen genom att starta ett terminalprogram.
Bat-filen jag gjorde enligt den andra tråden
står bara och väntar utan att det händer något.

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:51:25
av sodjan
OK. Jag är lost, vet för lite kring hur Arduino är konstruerat...

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:52:49
av Jan Almqvist
Jag tror att du måste sätta upp serieporten först med "Mode COMx etc etc".

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 20:55:01
av Borre
Ja det är antagligen på datorsidan det felet ligger.

Re: Hur kommer man igång med arduino?

Postat: 2 november 2017, 21:05:57
av BJ
Ja, det här var inte lätt.

Genom enhetshanteraren:
port.png
Mode-kommandot:
https://www.computerhope.com/modehlp.htm


Tillägg:
Det verkar vara en version 3 jag har.
https://www.arduino.cc/en/uploads/Main/ ... ematic.pdf

Re: Hur kommer man igång med arduino?

Postat: 3 november 2017, 12:03:50
av BJ
Det går att sända en gång från datorn.
Det spelar ingen roll om det är en mening
eller bara ett tecken. Nästa gång man sänder
så står den bara och väntar.

Re: Hur kommer man igång med arduino?

Postat: 3 november 2017, 12:59:57
av Mr Andersson
Kan hända att USB-UART:en stannar när bufferten blir full tills du har läst ut allt för att inte tappa data. Men som du märkt så körs USB:n och huvudprocessorn oberoende av varandra.

Re: Hur kommer man igång med arduino?

Postat: 3 november 2017, 20:17:07
av BJ
Slutet på min "loop":

Kod: Markera allt

  Serial.println("+----------------------------+");
  delay(250);        // delay in between reads for stability



  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);                       // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(500);                       // wait for a second

  if (Serial.available())
  {
    int inByte = Serial.read();
  }
Men det hjälper inte.

Nu kommer jag inte längre med det här.

Re: Hur kommer man igång med arduino?

Postat: 3 november 2017, 20:31:53
av Jan Almqvist
Funktionen delay() är giftig, ska man ta emot tecken för tecken måste man kolla Serial.available() och kunna anropa Serial.read() hela tiden.

Re: Hur kommer man igång med arduino?

Postat: 3 november 2017, 20:36:33
av Lennart Aspenryd
En finess med att gå från A till Ö i en del tutorials är att man kan lära sig begränsningar och trick!
Det är rätt tydligt i Lawicels Arduinoskola hur han tar bit för bit till bättre och säkrare kod.
Millis() är Tänkvärt!