Ook maar even voorstellen

Alles wat niet past in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Ook maar even voorstellen

Berichtdoor pjh » 11 Apr 2012, 22:58

Dit forum is een paar maanden jonger dan mijn entree in arduino-land.
Ik werk overdag (en 's nachts) in de zorg en zorg thuis door met drie dochters van 2 t/m 8 jaar.
Mijn vrouw zorgt gelukkig mee. Daarnaast werkt ze ook in de zorg en zorgt als laatste ook goed voor zichzelf. En als ze dan na die 'enkele keer' winkelen trots haar nieuwe laarzen showt, kan ik maar met moeite lovende woorden vinden. Punt, hak, kleur. Het maakt mij eerlijk gezegd niet zoveel uit.
Welnu: als ik met een arduino-projectje trots de kamer in kom lopen, zie ik op het gezicht van mijn vrouw dezelfde moeite. Ze vindt het leuk, dat ik het zo leuk vind... Terwijl ik wil uitleggen hoe ik een batterij ledjes aan de praat houdt. Het dondert d'r niet. Eerlijk en wel.

Daarom ben ik wel blij met een forum als dit. Nieuw. Leeg... Maar Nederlands. En ik denk dat daar veel kracht in zit. Vooral voor de jeugdigen of beginnelingen als ik. Ik blijf het hier nog wel even volgen.

In Februari dit jaar ben ik vrij consequent mijn vorderingen op arduino gebied aan het bijhouden http://huinink.info/arduinoprojects/. Omdat er wel duizenden projectjes mogelijk zijn, probeer ik een gemene deler te zoeken. En die is zo goedkoop mogelijk een uitgebreide arduino kit samen te stellen, die je bijvoorbeeld op school of voor 'minder bedeelden' beschikbaar kunt maken. Oefenspul om mensen over de drempel te helpen. Misschien een droom, maar voorlopig een richting in mijn achterhoofd.

Het heeft me zelf wel het volgende opgeleverd:
- eigen kale atmega-chips kunnen bootloaden.
- eigen arduino's op breadboard maken voor 8,50 euro inclusief board , 5 Volt en ATmega chip
- PIR sensor van de Action (die winkel) voor 2,39 is goedkoop en bruikbaar.
- goedkoop mooi 112 LED (8 x 14 ) displays bruikbaar gemaakt voor 3 arduino pinnetjes
- de betere luchtvochtigheidssensor AM2303 (dus niet de AM2202) voor 7 euro
- wind meter van 1 pingpongbal, een balpen en een mini klontje polymorf
- en veel meer op CHEAP gerichte projectjes.

Gisteren het electrische deel van een aquarium-pH / temperatuur sensor voor een collega gemaakt. Super leuk. Totale kosten 75 euro. Inclusief alle verzendkosten van de onderdelen uit china (gratis :}).

Maar goed. Dat was het.

Advertisement

Gebruikers-avatar
Berichten: 10
Geregistreerd: 14 Apr 2012, 14:15

Re: Ook maar even voorstellen

Berichtdoor Nugget78 » 14 Apr 2012, 14:59

Hallo PJH,

Ik weet niet of mijn vraag hier goed gesteld is, ben niet zo bekend met forums, maar moet ergens beginnen.
Las dan ook dat je voor de "minder bedeelden" beschikbaar wilt maken.

Ik ben begonnen met PICAXE. Simpele programmeertaal in BASIC-taal.
Omdat ik een aantal projectjes heb gemaakt hiermee en er achter ben gekomen dat PICAXE wat "lag" van bepaalde dingen heeft
ben ik overgestapt naar Arduino.
Arduino is dan ook in C-taal en is dus een flinke overstap.

Tevens wat tutorials gevolgt op You-Tube.
Maar wat ik nog niet echt snap zijn de functies met name vooral de "return" functie.

Met PIXACE kun je een call routine aanroepen met het commando GoSub en weer terugspringen met het commando Return.

GoSub callroutine
Na "return" springt ie op de deze volgende regel terug.
[code]

callroutine:
[code]
Return

Met Arduino kun je dit ook maar ik zie het niet zo in hoe je precies die routine kan maken en hoe het werkt??? En je kunt ook een variabele returnen???

Hier volgt een voorbeeld van een tutorial van You-Tube:

//use the variables
int switchpin = 8;
int ledpin = 11;
int ledlevel = 0;
//check state system 0/1
boolean lastButton = LOW;
boolean currentButton = LOW;


void setup()
{
pinMode(switchpin,INPUT);
pinMode(ledpin,OUTPUT);
}
boolean debounce(boolean last)
{
boolean current = digitalRead(switchpin);
if (last != current)
{
delay (5);
current = digitalRead(switchpin);
}
return current;
}
void loop()
{
currentButton = debounce(lastButton);
if(lastButton == LOW && currentButton == HIGH)
{
[code]
}
}
Mijn vraag is dan ook wat doet "return current" wat voor waarde zit erin en waarmee word deze routine aangeroepen.
Een ""BASIC" voorbeeld zou zijn "Gosub Debounce"
Met PICAXE spring je naar een "Label" maar ik zie gewoonweg niet in hoe dit gebeurt in C (Arduino).

En wat doet " return 0 " volgens Arduino reference

Zou je me een duwtje kunnen geven in de goede richting?

Met vriendelijk groet,

Nugget78
If you can't explain it simply, you don't understand it well enough.
-Albert Einstein

Berichten: 26
Geregistreerd: 04 Apr 2012, 09:42

Re: Ook maar even voorstellen

Berichtdoor r2d2 » 14 Apr 2012, 22:12

pjh schreef:Maar goed. Dat was het.


Welkom!
Als je dit allemaal vanaf februari van dit jaar hebt gedaan heb je veel vrije tijd gehad ;)
Maar goed gedocumenteerd! Komt altijd wel iemand van pas. Bedankt voor het delen.
Groeten van René

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Ook maar even voorstellen

Berichtdoor pjh » 16 Apr 2012, 00:40

Aan Nugget78,

Ik moet het programma nog eens goed bestuderen, maar ik denk wel dat ik je probleem ergens begrijp. Ik heb heel lang alleen basic geprogrammeerd.

Er zijn verschillende manieren om heen en weer te springen in een arduino sketch. Ik ben echt een newbie, maar dit zijn de mogelijkheden die mij zijn opgevallen:

een:
1. Je maakt een subroutine, een zgn. void ...
2. Je maakt een globale variabele aan ( dus vóór de setup )
3. geef in de void ... de globale variabele een waarde.
4. gebruik de globale variabele in je loop.
bijvoorbeeld:

/*******************/
float centimeter;

void setup() {
Serial.begin(9600);
}

void loop() {
for (int inch = 0; inch < 100; inch+=10)
{
vanInchNaarCentimer(inch);
Serial.println(centimeter);
}
}

void vanInchNaarCentimer(int binnenkomendGetal)
{
centimeter = binnenkomendGetal / 2.54;
}
/*******************/

Voorbeeld TWEE:
1. Je maakt een functie die zelf het getal teruggeeft:

void setup() {
Serial.begin(9600);
}

void loop() {
for (int inch = 0; inch < 100; inch+=10)
{
Serial.println(vanInchNaarCentimer(inch));
}
}

float vanInchNaarCentimer(int binnenkomendGetal)
{
float centimeter = binnenkomendGetal / 2.54; // centimeter is een lokale variabele
return(centimeter);
}
/*******************/

Beide sketches doen het zelfde.
De een met een subroutine: void ...
de andere als functie: float ...

==> return is dus NIET het zelfde als de return van BASIC !!
met return(waarde) gaat wordt waarde aan de float ... toegekend. Daarom kun je de functie direct in bijvoorbeeld een Serial.println(funcrtie) zetten.

Er zijn meer mogelijkheden. Is het een beetje duidelijk tot dusver.
En trouwens: nee: ik heb niet veel tijd, via internet leer je snel.
Groet.

Gebruikers-avatar
Berichten: 188
Geregistreerd: 23 Dec 2011, 00:12

Re: Ook maar even voorstellen

Berichtdoor Duality » 22 Apr 2012, 13:01

Welkom!
En ik hoop dat je nog veel plezier zult hebben op het forum :)

Groet,
Duality.

Gebruikers-avatar
Berichten: 10
Geregistreerd: 14 Apr 2012, 14:15

Re: Ook maar even voorstellen

Berichtdoor Nugget78 » 23 Apr 2012, 01:04

Dat zal zeker wel zo zijn ;)

@pjh tnx voor ut uitleggen..tis wat duidelijker zo 8-)
If you can't explain it simply, you don't understand it well enough.
-Albert Einstein

Terug naar Theekransje

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten