CC plus plus

Hallo mede Arduino genoten, ik ben nog niet zo heel lang bezig met een hobby kit van Arduino de UNO R2
Het is me gelukt om een breathalyzer aan de praat te krijgen. Erg leuk maar nu merk ik dat ik meer grip zou willen
krijgen op het programmeren. Na wat onderzoek zou het in C/C ++ geprogrammeerd worden. Het lukt me wel om wat aanpassingen
te maken in de voorbeeld Aruino scripts , maar om een wat complexer programma te schrijven is voor mij een nieuwe uitdaging XD

Mijn vragen:

  1. Klopt het dat ik op zoek moet naar C/C ++ ?

  2. Waar moet ik beginnen om hier een beetje grip op te krijgen ?

Bedankt alvast

Begin bij de programmas op de tutorial sectie van arduino.cc, dan krijg je een indruk van hoe dingen kunnen.

Ook leuk is - http://www.earthshineelectronics.com/files/ASKManualRev5.pdf -

Soonie:

  1. Klopt het dat ik op zoek moet naar C/C ++ ?

Dat klopt maar ......
Een Arduino programma gaat inderdaad door een C++ compiler (GCC ). In dat opzicht is Arduino 100% C++ compatibel. Toch heb ik enig voorbehoud om gelijk wel C++ boek te nemen -of aan te raden- om de Arduino te leren programmeren. Het is namelijk zo dat er heel wat beperkingen zijn op een "embedded system" (arduino is dus een embedded system). Een standaard C++ boek schenkt daar geen aandacht aan en zal alle (geheugen en cpu etende mogelijkheden) ruimschoots aan bod laten komen. Erger nog; wegens de krachtige PC en het feit dat het boek de taal leert -en niet een implementatie van de taal- wordt aan het geheugen en CPU gebruik waarschijnlijk geen of weinig aandacht besteed.
Vandaar ook dat links (zoals die van robtillaart) heel hands-on naar arduino en/of embedded gaan en dus meer geschikt zijn om Arduino programmatie te leren. Als je geen programmeer of C++ kennis hebt zou ik wel een C++ boek aanraden als referentie om code "beter te begrijpen" maar ik zou het niet aanraden om "de Arduino taal" te leren.
Er zijn hopen discussies op het forum over welke C++ functionaliteiten wel of niet aangeraden worden op Arduino. Omdat ik geen zin heb in zo een discussie ga ik ook geen statements maken welke C++ functionaliteit ik afraad.

Conclusie.
Ja; Arduino programmeer in de C++ taal. Er zijn echter C++ functionaliteiten die je best niet (teveel?) gebruikt op de Arduino. Daarom is een C++ embedded boek of een Arduino boek een beter optie om de Arduino taal te leren.

Met vriendelijke groet
Jantje

Vele dank voor de snelle reacties !!

Wat ik begrijp is dat de code op CC++ is gebaseerd :roll_eyes: goed om te weten want ik wil niet verdwalen in het CC++ bos.

Ik heb al aardig zitten spitten in de code's via de interface van Arduino maar zie nog geen logica.
Wel een Nederlandse pdf gevonden op het forum van ene Geert , met hoe de code is opgebouwd.

Mijn leerdoel is om bv te gaan werken met verschillende analoge input bv (een sensor op A1 een drukknop op A2)

Wat ik dan tegenkom is commando's ( if en else ) als knop A1 treu is doe dan A2 activeren)

Is dit haalbaar in het Arduino project ? of wil ik dingen die niet kunnen ?

Soonie
Een analoge poort is duurder dan een digitale. Dus een drukknop zet je "normaal" op een digitale poort en niet de analoge.
Een sensor activeren op basis van een drukknop is makkelijk. Ik zie het nut niet (behalve energie sparen) maar dat ligt vast aan mij.
Ga maar eens door de vele voorbeelden die samen met de Arduino IDE komen. Er is echt heel wat mogelijk met een Arduino. Ik ben bijvoorbeeld bezig met een volautomatische grasrobot op basis van een arduino.
Das dan met een web interface en gps; dus een knopje en een sensor geen probleem.
Met vriendelijke groet
Jantje

Hallo Jantje

Wat bedoel je precies met duurder ? in aanschaf ? of dat deze meer ampères verbruikt ?

Momenteel heb ik een opstelling met een Gas sensor op de A1 poort , waarom de A1 ? omdat de sensor met een
analoog signaal aankomt. En deze het signaal omzet naar de digitale OUT pinnen 2 t/m 10

Een projectje wat ik tegenkwam met een code erbij vandaar dat ik het aan de praat kreeg.

Ik merk al dat werken met deze materie als snel vraagt naar meer en verder XD

Soonie

Soonie:
Wat bedoel je precies met duurder ? in aanschaf ? of dat deze meer ampères verbruikt ?

In aanschaf? Neen want er zitten 6 analoge poorten op je Arduino en met minder of meer kan je ze niet krijgen. 8)
In verbruik? Ik denk het niet (maar ik ben geen expert)
In cpu tijd? Ja: Het uitlezen van een analoge waarde vraagt meer tijd dan het uitlezen van een digitale waarde. (maar van het verschil lig je vast nog niet wakker van)
In beschikbaarheid?: Ja: Op een Arduino UNO zijn er 6 analoge poorten (die je ook digitaal kan maken) en 14 digitale poorten (die je niet analoog kan maken)

Daarom dat je digitaal gebruikt als je digitaal kan gebruiken. Voor een drukknop die maar 2 standen heeft gebruik je dus best een digitale pin.

Met vriendelijke groet
Jantje

Ik begrijp het tijd is geld dus ook processor tijd :% de dag dat ik daar van wakker ga liggen gaat zeker nog komen :wink:

Ehh nog wat ,ik heb het over een zeer verouderd UNO R2 bordje uit 2011 (van de week binnen gekregen)

wat ik begrijp is dat ik 14 digitale poorten heb waarvan ik er 6 analoog kan maken (PWM)
poortje 3,5,6 en 9,10,11

Dit in tegenstelling tot wat jij zegt dat ik mijn analoge poorten digitaal kan maken ( of kan dat bij mij ook?)

Kan het zijn dat we het over verschillende type bordjes hebben ??

Je mixt analoog met pwm
Je hebt poort A0 tot A5 dat zijn analoge in poorten. Je kan dus een analoog signaal (0V tot 5V op een UNO) in een binaire waarde (0->1023) in Arduino krijgen
Terwijl de PWM een uitgaand signaal is dat nog steeds 0 of 1 (of 0V en 5V op een Uno) is maar snel wisselt.
Met viendelijke groet
Jantje

Dus als jou begrijp kan ik die 6 analoge poorten digitaal maken ? dit zal dan in de code aangegeven moeten worden

zo te zien zijn er vele mogelijkheden

ik ga eerst maar eens het script eigen maken

update 24 nov.

Na wat onderzoek ben ik erachter dat ik de MQ3 sensor verkeerd aangesloten had.

Mijn MQ3 sensor heeft een analoge en een digitale uitgang gesoldeerd op een printje.
Nu heb ik de coil heater op een externe voeding staan omdat deze bij 5 volt 750 mW zou verbruiken en dat kan de Arduino
onboard voeding niet aan. (max 40 mA per I/O pin)

Ik gebruik de analoog uit van de MQ3, naar pin A1 , kan dit zonder een ground te gebruiken zonder de UNO te beschadigen ?
Kan de UNO gewoon enkelvoudige signalen ontvangen ? en hoe maak je een analoog poortje digitaal want dit kan deze MQ3 dus ook

Ik vraag het liever even voordat er rook uitkomt :slight_smile:

lees nu net dat de UNO op 3.3 volt 50 mA kan leveren , maar hoeveel kan je uit de 5 volt poort trekken ??

ik zoek maar kan niet vinden :blush:

Ik zal er even een nieuw topicje van maken betreft de spannings output :wink: