[informatica]

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 817

[informatica]

Beste

Ik Wil een servomotor stapsgewijs laten draaien.

Dus wanneer een 8 wordt ingegeven in de sérielle monitor 45 graden naar links en 9 45 graden naar rechts.

Voor het draaien in stappen gebruikte ik een for loop. Voor het onderscheidt tussen 8 en 9 gebruikte ik if statement.

Maar het lukt gewoon niet. Ik ben hele nacht bezig geweets maar het lukt niet en ik moet morgen klaar zijn.
Ik heb echt jullie hulp nodig

Berichten: 817

Re: [informatica]

Het programma dat ik gebruik is Arduino

Gebruikersavatar
Moderator
Berichten: 9.894

Re: [informatica]

Lukt het draaien niet of het de juiste kant op niet?

Ik ken die programmeertaal niet maar veel talen lijken op elkaar. Laat de code eens zien.

Berichten: 817

Re: [informatica]

code1.png
Het draait zelfs niet

Gebruikersavatar
Moderator
Berichten: 9.894

Re: [informatica]

Als het zelfs niet draait kan ik je niet helpen, ik heb geen Arduino dus ik kan het niet proberen.
De taal doet erg aan C denken.

Ik zie wel een fout, in de laatste lus, voor getal 9, moet 'pos-=5' staan.

Gebruikersavatar
Berichten: 2.268

Re: [informatica]

Arduino is het platform, de programmeer taal is sketch. Heb je de seriele interface al kunnen testen? Is dat via een kabel tussen pc en arduino of wat gebruik je?

Berichten: 7.068

Re: [informatica]

De taal is C++. Een sketch is de term voor een programma bij Arduino.

Het programma zou twee dingen moeten doen: input verwerken en een motor aansturen. De truc is om deze taken eerst los van elkaar te testen. Maak eerst een programma dat alleen de motor aanstuurt. Maak daarna een programma dat puur de input-afhandeling regelt. Als je beide stappen kunt dan kun je het daarna combineren.

Ik vermoed trouwens dat 'Serial.read' je de karakterwaarde geeft van het eerste byte. Ik verwacht dat een '8' je het getal 56 geeft (en '9' = 57). Geen van beide if-statements zal ooit matchen op 8 of 9 (is mijn vermoeden).

Berichten: 817

Re: [informatica]

Evilbro.

Je hebt gelijk. Ik heb de waarde aangepast en het werkt.

Gebruikersavatar
Berichten: 2.268

Re: [informatica]

EvilBro schreef: do 14 jul 2022, 12:58 De taal is C++. Een sketch is de term voor een programma bij Arduino.
Dat het gebaseerd is op C is uiteraard correct. Zeggen dat de taal C++ is vind ik niet correct. Je kan een sketch programma wel uitbeiden met C++ code. Bij ons wordt overal programmeren in sketch gezegd.

Berichten: 7.068

Re: [informatica]

wnvl1 schreef: do 14 jul 2022, 13:53Bij ons wordt overal programmeren in sketch gezegd.
Geloof ik zo...

Maar, van de glossary van Arduino (link): "Sketch - The term given to programs written in the Arduino IDE. "
De taal heet volgens mij officieel de 'Arduino programming language'.
De IDE compiled volgens mij met avr-gcc tegen avr-libc aan. Het flinterdunne laagje om C/C++ heen, kan ik best negeren zonder al te veel gewetensbezwaren.

Heb jij een voorbeeld van C++ code die niet werkt in een Sketch? (En dan hebben we het dus niet over het ontbreken van eventuele standaard libraries).

Gebruikersavatar
Moderator
Berichten: 9.894

Re: [informatica]

EvilBro schreef: do 14 jul 2022, 12:58 Ik vermoed trouwens dat 'Serial.read' je de karakterwaarde geeft van het eerste byte. Ik verwacht dat een '8' je het getal 56 geeft (en '9' = 57). Geen van beide if-statements zal ooit matchen op 8 of 9 (is mijn vermoeden).
Mooi gezien.

Vreemd dat dat TS niet opgevallen was, 'serial.print(getal)' had toch de foute, niet bedoelde waarde moeten laten zien.

Gebruikersavatar
Berichten: 2.268

Re: [informatica]

Er gebeurt een soortvan preprocessing van een Sketchprogramma om het om de sketch om te zetten naar C++. Je werkt ook niet met een main programma, maar met een loop zoals bij een PLC. Op zich zal je wel alle C++ code kunnen gebruiken, vermoed ik. Ik heb nog nooit met klasses gewerkt in sketch. Meestal is de code eerder klassiek C-achtig.


Gebruikersavatar
Berichten: 2.268

Re: [informatica]

Er is een preprocessor die alles omzet naar een C++ programma.

https://github.com/arduino/arduino-preprocessor

De kinderen en hobbyisten die Arduino's programmeren gaan echter dikwijls nog nooit gehoord hebben van C++. Je wordt daar van afgeschermd door de Arduino Sketch IDE. Je krijgt een skelet waarin je maar een paar lijntjes code moet invullen voor de meeste programma's.

Ik heb zelf ook nog nooit C++ code gebruikt in een Arduino projectje, alleen nog maar C-achtige code.

Gebruikersavatar
Berichten: 2.268

Re: [informatica]

Je kan een Arduino ook programmeren in Scratch. Dat wordt ook heel veel gebruikt. Bij coderdojo wordt dat fel gepromoot om de kinderen te leren programmeren met Arduino.

Reageer