Email marketing strategie

Emailmarketing met strategie is dé sleutel tot het verhogen van je verkoopcijfers! Meestal zullen je klanten namelijk niet onmiddellijk, bij het eerste bezoek aan een website, producten kopen. Het opvolgen van deze klanten is dus zeer belangrijk! Hier leren we hoe je kan starten met Email marketing en zo de beste Email marketing strategie gebruikt om je klanten te binden aan je bedrijf.

Email marketing heeft echter een slechte naam… Dit komt door het grote aantal ongeleide projectielen die steeds opnieuw onverzorgde en inhoudelijk miserabele mails versturen! Hoewel Email marketing een lage drempel heeft, komt er toch veel meer bij kijken dan sommigen beseffen…

We spreken over Email marketing wanneer het specifiek gaat over het opvolgen en aanspreken van klanten door gebruik te maken van e-mails. We zien hieronder niet alleen het automatiseren van dit proces, maar ook het verzamelen van e-mails, de inhoud van de mails, … 

Starten met Email marketing:

Het doel van een juist Email marketing strategie is de aandacht van je klanten behouden. Op het internet zijn er vele programma’s te vinden die dit proces voor jou automatiseren. Een goeie email marketing strategie is echter niet gebouwd op de software, maar op de inhoud van de mails. De inhoud en de opmaak van je mails zijn dan ook zaken om serieus te nemen.

E-mailopmaak:

Één van de belangrijkste zaken van email marketing is uiteraard de inhoud van je e-mails! Veelal biedt het programma je een waaier van templates aan die je kunt aanpassen voor jouw e-mails. Met deze moderne layouts kan je je focussen op de inhoud van de e-mail zonder je zorgen te maken over de ‘looks’ van je mail.

Geen enkele zaak is echter vergelijkbaar met de andere. En het clienteel al helemaal niet! Daarom is het vaak aangeraden om je eigen emails te ontwerpen. Zo krijg je een uniek template voor jouw bedrijf. Iets wat je apart zet van andere bedrijven en iets waaraan je klanten je aan kunnen herkennen

Maar wat moet ik nu schrijven in mijn e-mails? Dat is de vraag waarrond Email marketing draait en waarop er velen sneuvelen! Gelukkig, en eerlijk is eerlijk: wij hadden ook nood aan deze tips, hebben experts van Aweber zich hierop voorbereid. Ze hebben een cursus geschreven die jullie op het juiste pad kan brengen! 


email marketing strategie

Emailmarketing strategie:

Wanneer de inhoud van je mails geschreven is, wil je natuurlijk dat deze door de juiste mensen op het juiste moment gelezen word. Hier komt nu echt Email marketing strategie aan de pas. Hieronder vindt je onze tips om je tacktiek te optimaliseren.

1) Vraag steeds toestemming:

Mensen willen niet lastig gevallen worden! Vraag daarom steeds toestemming of je hen mails mag sturen. Zo weet jij zeker dat je alleen geïnteresseerde klanten hebt en zorg je ervoor dat je mails ook gelezen zullen worden. Voor bedrijven die huis zijn in verschillende categorieën is dit zeer belangrijk! Mensen willen namelijk alleen informatie waarin ze geïnteresseerd zijn. Ze willen geen informatie over bijvoorbeeld kinderboeken wanneer ze een encyclopedie besteld hebben…

2) Test je nieuwe emailstrategie:

Wanneer je een nieuwe email marketing strategie opstart is het van belang dat je het eens bekijkt van de klantenzijde van het verhaal. Zo weet je allereerst of alles gaat zoals jij het wenst, maar krijg je ook meer zicht op welk soort publiek je aantrekt in de campagne. Met deze ervaring kan je dan je mails bijsturen of verbinden met ander campagnes … Hoe meer je dit doet, hoe meer je email marketing zal aangepast zijn aan je publiek. Tenslotte een aangepast campagne is een efficiënte campagne!

3) Zend steeds uit eigen naam:

Mensen zijn uit nature sociaal. Dit wordt al te vaak vergeten in de gedigitaliseerde wereld waarin we vandaag de dag leven. Mensen vinden het gemakkelijker om een vertrouwensband op te bouwen met een persoon dan met de naam van een bedrijf. Zelfs al kennen we deze personen niet! Zend daarom steeds mails vanuit je eigen naam. Zo krijgt je emailstrategie een menselijk gezicht, een sociaal gezicht. Uiteraard wil je dat mensen direct weten welk bedrijf je vertegenwoordigd! Kies daarom voor combinaties als ‘Tristan van GG’.

3) Schrijf persoonlijke onderwerpen:

Onderwerpen zoals ‘glamour weekend’ kennen we allemaal. En dit werkt, geen twijfel mogelijk. Toch verkiezen wij steeds persoonlijkere onderwerpen zoals ‘Wil je iets voor me doen?’ of ‘Speciaal voor jullie’. Het versterkt niet alleen de band tussen je bedrijf en je publiek, maar wekt ook interesse! Mensen worden nieuwsgierig naar je mails, zijn benieuwd naar de inhoud…

4) Schrijf voor meerder doelen:

Schrijf niet alleen om je klanten iets te laten kopen of hen te informeren over koopjes. Je wilt je klanten een gevoel van betrokkenheid geven. Zo kan je mails sturen met als onderwerp ‘wat zou jij veranderen?’. De inhoud van deze mail kan dan gaan over je blog, bedrijf, webshop … En wat je klanten graag zouden willen aangepast zien, extra toegevoegd zien aan je website in de toekomst. Je klanten voelen zich gehoord en wie weet komen er wel originele ideeën uit de bus…

5) Kies een betrouwbaar programma:

Op het vlak van email marketing strategie wordt je al te vaak beperkt door de software die je gebruikt. Het zelf programmeren van deze campagnes is onmogelijk als eigenaar van een klein bedrijf. Je bent dus volledig afhankelijk van de tools die je programma aanbiedt. Je wilt natuurlijk niet dat dit je limiteert in je mogelijkheden!

Aweber de specialist in e-mailmarketing!

Wanneer wij zoeken naar tools zijn er bepaalde zaken die onmisbaar zijn: een gebruiksvriendelijk interface, een grote waaier aan mogelijkheden, een helpdesk en bovenal een systeem dat al bewezen is. Met deze regels te hand hebben we selectie gemaakt. Op deze pagina willen we jullie onze eerlijke review geven over Aweber en de aspecten die voor ons het verschil maakten.

Uiteraard zijn er vele tools die deze service aanbieden. Dit is dan ook noch een verheerlijking van Aweber noch een manier om de andere te kleineren. Aweber is de service die voor óns het beste naar onze behoeftes leunde. Terwijl er zeker dan weer andere e-mail marketing tools en strategieën beter aanleunen bij de behoeftes van anderen. 

Powered by AWeber

De layout van je mails:

Aweber biedt 700+ templates aan om je mails te maken. Maar misschien ga je toch liever je eigen weg? Of zet je liever een bestaande template dat tikkeltje meer naar je eigen hand? Wel met het gebruiksvriendelijk ‘drag-and-drop’ ontwerp systeem maak je zelf snel en eenvoudig je eigen templates! Zo sleep je een voorgeprogrammeerde ‘image’-blok, gevolg door een titel, dan een tekst-blok … En weg ben je! Geen IT-opleiding vereist dus! 

Stel: je hebt juist een nieuw post op je website gezet … Je wilt uiteraard dat deze post door mensen gezien wordt! Echter heb je na een drukke dag, begrijpelijk, geen zin meer om dit artikel te verwerken in een mail… Maar dat hoeft ook niet! Aweber maakt automatisch een mail van je nieuwste blog-post. Zo hoef je het slechts eens na te lezen, misschien een beetje aan te passen, en je e-mail te versturen! 

E-mailcampagnes:

In Aweber kun je eenvoudig een E-mailcampagne opstellen. Zo kan je eenvoudig bepalen wie aan deze campagne meedoet. Het aantal mails en de wachttijd zijn snel te bepalen via een ‘drag-and-drop’ systeem. Het opstellen van zo’n campagne is dus kinderspel! Dit is echter wel één van de sterkste punten van e-mailmarketing: iedereen die aan de voorwaarden voldoet zal deze mails krijgen! En dat terwijl jij deze campagne opgesteld tijdens de koffiepauze op je werk!

Er kunnen ook tags worden toegevoegd aan een email. De klant zal dit niet merken en er zal ook niets op de pc van de klant geïnstalleerd worden. Neen, deze tag is enkel voor het Aweber systeem. Hoe het werkt? Wel, wanneer er iemand een mail openend, waaraan er een tag bevestigd is, dan onthoud het systeem dit. Jij kan dan zelf bepalen wat de volgende stap is. Laat bijvoorbeeld iedereen met deze tag meedoen aan een tweede campagne! De mogelijkheden zijn hier onbegrensd!  

email marketing strategie

Aweber heeft ook een leiding gevende positie in het verstuur-programma van hun mails. Als eigenaar wil je namelijk niet dat je mails in spam belanden! Awebers stuurprogramma zorgt ervoor dat je mails altijd in de inbox van je klanten belanden!

Opvolging van je mails:

Als eigenaar wil je uiteraard graag weten welke mails het meest geopend worden! Wel met het tracking-systeem van Aweber is dit perfect mogelijk! Zo kan je opvolgen hoeveel keer elke mail geopend werd. Met deze informatie kan je dan je toekomstige e-mailcampagnes verbeteren.

Deze opvolging is er ook voor je volledige campagnes! Zo kan je zien hoeveel mensen de mail geopend hebben, hoeveel er op een link geklikt hebben, en het aantal dat doorverwezen geweest is naar je website. Deze grafieken tonen perfect weer hoe effectief je campagne was.

Maken van doelgroepen:

Natuurlijk zijn niet al je klanten gelijk! En hoe diverser je website, hoe diverser je publiek. We willen uiteraard niet dat iemand een mail krijgt die mijlen van zijn interessegebied ligt. Hier komen doelgroepen te pas! Je kan namelijk je klanten niet allen verdelen met tags, maar ook op basis van geografische locatie en persoonlijk interesses. Wanneer je een onderscheid wil maken in taal is dit tweede van onschatbare waarde…

Klanten opvolgen:

Aweber beschikt over kant en klare blokken om de gegevens, email-adres, van je klanten te verzamelen. Van deze gegevens wordt er een lijst gemaakt gemaakt die je kan gebruiken in je e-mailcampagnes. Ben je al een tijdje actief en heb je al een lijst? Geen probleem! Je kan gemakkelijk je bestaande lijst importeren in Aweber en zo je lijst laten aanvullen!

Tot slot heeft een Aweber nog een handige tool in petto. Steeds moeten je vooruitgang controleren op je pc kan wel vervelend zijn. Daarom heeft Aweber een app die alles toont wat je nodig hebt.

Klantenservice:

Tot slot is er het ‘award-winning’ helpdesk team van Aweber! Je kan hen 24/7 bereiken om problemen op te lossen en zo samen jouw business te promoten! Ze helpen je op weg met elke stap van het e-mailmarketing proces. En tonen zo wat je precies moet doen! Van het groeien van je email lijst tot wat je in je e-mails moet verwerken.


 
Leer hoe je jouw e-mail lijst uitbreid in minder dan 4 uur met deze 6 korte en volledig gratis lessen.
Start met e-mailmarketing!

Onze ervaring

E-mailmarketing strategie boost je verkoopcijfers. Zo simpel is het! Het is bewezen, het werkt. Met een goede, gerichte en professionele e-mailcampagne kan je je website katapulteren tot ongekend hoogtes!

Voor ons was Aweber dé tool om e-mailmarketing te realiseren! De helpdesk, de mogelijkheden en de gebruiksvriendelijke interface zorgden dat we al snel de kneepjes van het vak beheersten. Door hun helpdesk raden wij zonder twijfels Aweber aan voor start-ups. Ook voor veteranen in e-mailmarketing is Aweber interessant door de vele doordachte functies en mogelijkheden!. 

Social Proof

Welkom bij onze Proof review! Het vertrouwen krijgen van je klanten is van enorm belang! Mensen zullen namelijk pas actie ondernemen wanneer ze zich ‘veilig’, ‘ gerust gesteld’ voelen. Door het aantal ‘fraudeurs’ dat het internet dezer dagen telt, is de geloofwaardigheid van een website sterk gedaald. Het vertrouwen op reviews eens dan weer sterker dan ooit te voren! Weten als klant dat je niet de enige bent die interesse toont in een bepaalde website en zien dat anderen een perfecte ervaring met deze website hadden, scheppen een vertrouwensband. De aanwezigheid van ‘social proof’ stimuleert je ‘conversion rate’ enorm!

Met ‘social proof’ bedoelen wij alles, maar dan ook echt alles, die gestimuleerd is door 100% echte mensen. Ratings, live aantal bezoekers, recente activiteit, getuigenissen … Er zijn vele mogelijkheden om klanten bij je website te betrekken en ze een sociale vertrouwensband te creëren. 

social proof

Proof:

Wanneer wij zoeken naar tool zijn er bepaalde zaken die onmisbaar zijn: een gebruiksvriendelijk interface, een grote waaier aan mogelijkheden, een helpdesk en bovenal een systeem dat al bewezen is. Met deze regels te hand hebben we selectie gemaakt. Op deze pagina willen we jullie onze eerlijke review geven van Proof en de voordelen die voor ons het verschil maakten.

Uiteraard zijn er vele tools die deze ‘social proof’-service aanbieden. Dit is dan ook noch een verheerlijking van Proof noch een manier om de andere te kleineren. Proof is de service die voor óns het beste naar onze behoeftes leunde. Terwijl er zeker andere ‘sociale betrekking’-tools zijn die beter aanleunen tegen de noden van anderen. Natuurlijk we slechts garant staan voor Proof, omdat wij met de andere tools, hoe volmaakte deze ook zijn, geen ervaring hebben. 

Tools:

Door gebruik te maken van deze tools zal je conversion rate de lucht in schieten! Ze merken een gemiddelde stijging op van 10 tot 15 procent bij hun klanten. Daar bovenop merken ze dat hun advertenties meer succes hebben en hun aantal terugkerende bezoekers opvallend gestegen is! Dit allemaal doordat deze tools jouw bezoekers een vertrouwensgevoel geven en ze zo jouw klanten maakt.

Hot streaks:

Deze notificatie, hot streaks, geeft weer hoeveel mensen er onlangs op je website actie hebben ondernemen. Dit kan gaan over het maken van aankopen, maar evengoed over het invullen van je e-mailadres. Dit is hun product met de hoogste stijging in ‘conversion rate’!

social proof
social proof
Live visitor count:

Hun ‘live visitor count’ geeft weer hoeveel mensen er ‘live’, op dit moment een bepaalde pagina aan het bekijken zijn. Dit kan ook veralgemeend worden voor je hele website. Zo creëer je een groepsgevoel onder je klanten…

Recent activity:

Met deze notificatie kan je meldingen laten verschijnen met de recentste activiteit op je website. Dit is hun populairste tool en geeft een verpersoonlijking van de bezoekers op je website. Terwijl ‘hot streaks’ het aantal weergeeft, geeft deze tool een persoonlijker bericht, met naam, plaats …

social proof

Campagne opstarten:

Hier zullen we jullie tonen hoe eenvoudig het is om te starten met Proof! Zo kan je zonder veel moeit of enige IT-ervaring je website uitrusten met deze unieke ‘social proof’-tools!

Proof activeren op je website:

Allereerst willen we proof activeren op je site… Dit doen we door een code, voorzien door proof, te kopiëren in de ‘header’ of je site. Dit lijkt misschien wat ingewikkeld, maar dat is het zeker niet! Proof voorziet zelf documentatie die stap voor stap uitlegt hoe je jouw website uitrust met met hun applicatie. Staat jouw gekozen website-‘builder’ niet in hun documentatie? Neem dan contact op met hun hulpdesk of raadpleeg andere documentatie om de ‘header’ van je site te vinden. Echter naar persoonlijk ervaring zien we dat Proof voor de meesten de juiste documentatie heeft…

Wanneer je de ‘header’ van je website gevonden hebt, dan ga je naar je proof dashboard. Bij ‘pixel install’ zie je een code staan, deze kopieer je dan simpelweg in je ‘header’. Zo is proof geactiveerd op je website!

Het aanpassen van je tools:

Na de installatie zal Proof beginnen met het verzamelen van data. Natuurlijk willen we deze data ook tonen aan onze klanten! Hiervoor starten we een campagne door simpelweg op ‘new campaign’ te klikken op het tabblad ‘campaigns’.

Nadat je een naam gekozen hebt voor je nieuwe campagne, zal je arriveren op de eerste stap. Hier bepaal je welke soort tools je wilt gebruiken in je campagne: recente activiteit, live bezoeker teller of hot streaks. Je kan uiteraard meerdere tools gebruiken in eenzelfde campagne. 

Recente activiteit:

Een geactiveerde tool is uiteraard ook volledig naar je hand te zetten! Bij ‘message’ bepaal je welk bericht er wordt weergegeven bij de meldingen. Er is ook optie voor het invoegen van een extra afbeelding en tot slot zijn er nog vele voorwaarden die kunnen aangepast worden. Zo kan je: aanpassen hoe recent de notificaties moeten zijn, ervoor zorgen dat ze nooit hun eigen notificaties zien …

costumation social proof
aanpassen social proof
Proof campagne

Live bezoekers teller:

Ook deze tool is aanpasbaar! Bij de teller kan je kiezen voor de optie om alle bezoekers van je website weer te geven. Je kan ook een minimaal aantal bezoekers als kiezen zodat de teller nooit zal verschijnen wanneer bijvoorbeeld een klant slechts alleen is! Tot slot kan je kiezen hoe je je klanten noemt. Van gewoon ‘people’ tot ‘techlovers’ kan hier aangepast worden.

Hot streaks:

Bij hot streaks kunnen we kiezen of we ‘visitors’ of ‘conversion’, zoals hier, weergeven. Persoonlijk zijn wij voorstander voor het weergeven van ‘conversion’. Zo geeft je weer hoeveel mensen er actie ondernomen hebben en stimuleer je anderen om hetzelfde te doen. Ook hier kunnen we een minimum instellen en onze klanten voorstellen als bijvoorbeeld ‘people’. Tot slot kunnen we bepalen welke actie je klanten ondernomen hebben! Dit kan ‘ started their free trial’ zijn, maar bijvoorbeeld ook ‘ deden aankopen op onze website’.

social proof aanpassen

Geef je input pagina:

Bij stap twee moet je de URL van je pagina, waarvan je de data wil verzamelen om te tonen via je tools, kiezen. Dit kunnen uiteraard meerdere pagina’s zijn! Dit kan bijvoorbeeld een webshop pagina zijn of een pagina waar de mensen hun e-mailadres kunnen invullen… Dit zijn de pagina’s waarop je wilt dat mensen actie ondernemen!

Kies je output pagina:

Bij stap drie kies je de pagina waarop je wilt dat je gekozen tools verschijnen! Ook hier kan je meerdere pagina’s selecteren. Dit zijn vaak je pagina’s met de meeste bezoekers. Het kan ook perfect om je input pagina ook als output pagina te gebruiken.

De laatste aanpassingen:

Hier kan je nog algemenen aanpassingen maken aan je gekozen tools! Zo kan je kiezen om een link te verwerken in je notificaties. Maar ook zeker een aanrader is er voor zorgen dat ‘show on top of page on mobile’ is geactiveerd! Het zorgt voor een aangenamer gebruikerservaring voor je klanten die je website bezoeken via gsm. Tot slot kan je ook de tijd tussen twee notificaties en de taal ervan aanpassen.

Na deze vier eenvoudige en snelle stappen heb je zelf een professionele ‘social proof’-tool gemaakt voor je website. En het beste: na deze stappen te ondernemen kan je jouw tijd spenderen aan de dingen die voor jouw de moeite waard zijn terwijl deze campagne voor jouw al het werk doet! En eerlijk is eerlijk: het leven is te kort om er niet van te genieten…

Onze ervaring

De vertrouwensband tussen klant en verkoper is van het uiterste belang! Zonder vertrouwen kan een zaak niet verdergaan. Het vertrouwen winnen en behouden van je klanten is dus prioriteit nummer één.

Proof zorgt ervoor dat je op een eenvoudige manier ‘social proof’ kan verwerken in je website. Door hun gebruiksvriendelijk dashboard in combinatie met hun hulpdesk kan je als startup niet slecht varen met Proof. Daarbovenop krijg je professionele tools om je ‘conversion rate’ op te krikken, tools die zelfs voor de grootste bedrijven heel interessant zijn. Volgens Airbnb en vele anderen was Proof dé motor achter hun succes.

Website hosting service

Als je het internet wil veroveren, dan heb je natuurlijk een website nodig! Hier komen hosting services aan de pas… En Kinsta is dé leider in de business! Als website hosting services biedt Kinsta jouw de beste service, de meeste opties en een dashboard voor al je noden. 

Het hosten van een website op het internet kan je het best vergelijken met een markt. Wanneer je een plaats wilt op de markt, dan zal je moeten betalen om daar te mogen staan! Wel, op het internet is dat niet anders. Als je een website wil maken, dan zal je voor jouw plaats op het internet moeten betalen. 

We zochten dan ook niet naar het gratis alternatief, want deze bestaat niet óf is niet te vertrouwen! Ook wij zijn gestart met het zoeken naar het goedkoopste alternatief… We kwamen echter al snel tot de conclusie dat je zo de controle verliest over hét belangrijkste in heel je onderneming… namelijk je website! We waren letterlijk en figuurlijk blind over de status van onze website. De gegevens die we konden zien gaven vaak een vertekend of zelfs géén beeld van de werkelijke situatie. Na deze vaststelling schakelden we over naar Kinsta en een nieuwe wereld opende zich voor ons…

Kinsta

Kinsta is er voor diegene die volledige controle willen over hun website! Die graag grafieken over laadtijden, bandbreedte en zoveel meer wil zien. Maar ook voor diegenen die hun bezoekers een aangenamer bezoek willen geven met sneller laadtijden of voor eigenaars die hun website beter willen beveiligen dan fort knox! Van de startup tot de trotse eigenaar van meerdere sites, Kinsta is er voor iedereen.

Features:

award winning kinsta

Hieronder vindt u een lijst van een deel de voordelen en tools die Kinsta aanbiedt. Het zijn deze ‘features’ dat Kinsta uniek maakt van alle andere website hosting services! Het zijn deze ‘features’ die Kinsta nu al vijf jaar op een rij de ‘Top Tier WordPress Hosting Performance’-prijs schenken. Daarboven op is het één van slechts twee bedrijven die erin slaagden op deze prijzen in de wacht te slepen voor startups en voor professionals!

Snelle laadtijden:

Kinsta is als enigste website hosting service ondersteund door Google cloud platform. Kinsta maakt dus gebruik van het Google eigen globaal netwerk om zo de snelste laadtijden te garanderen. Daarbovenop schaalt Kinsta de snelheid van je website automatisch naargelang het aantal bezoekers op dat moment. Zo zal je website tijdens een bezoekerspiek blijven presteren!

Kinsta garandeert ook dat je elk website gehost door hen een apart compartiment heeft op de server! En als kers op de taart kan je jouw website aanpassen aan de geografische locatie van je website. Met andere woorden: je kan zelf de serverlocatie van je website aanpassen! Neem deze website bijvoorbeeld, dit is een Nederlandstalige website, dus de bezoekers zullen meestal afkomstig zijn van Nederland of België… Dan heeft het toch geen zin dat je website op een server in Amerika is opgeslagen! Kinsta biedt je de mogelijkheid om je website te verhuizen naar, bijvoorbeeld, de server in Saint-Ghislain, nabij Bergen, in België of naar ‘europe-west4’ gelokaliseerd in Nederland.

Kinsta website hosting service
Kinsta website hosting service

Beveiliging en backups:

Deze website hosting service beweert hun websites strenger te beveiligen dan fort knox! Hoewel we het nooit zullen weten, is er toch iets te zeggen over hun beveiliging… Met hun vele lagen bescherming staan zeker en vast hun mannetje bij een cyberaanval. Misschien is dit wel de reden dat grote bedrijven zoals tripadvisor en ubisoft op hun beide oren kunnen slapen… 

Kinsta controleert je website om de 2 minuten, 720 keer per dag dus, om ervoor te zorgen dat je website altijd werkt zoals het hoort! En bij problemen hoeft u niet eerst een cyber-cursus te volgen vooraleer deze opgelost worden… Kinsta reageert zelf op problemen en beschermt zo jouw website! Bescherming nodig tegen jezelf of één van je partners? Geen probleem: Kinsta maakt dagelijks een backup van je website. Wanneer dit niet voldoende is, kan je dit upgraden naar om de zes of zelfs één uur!

Hulpdesk:

Kinsta is opgericht door ervaren professionals die veel ervaring hebben met WordPress. Dus wanneer je als startup even je weg verliest in wordpress, iets wat totaal normaal is, staat een volledig team paraat om jouw weer op weg te helpen. Kinsta maakt er zelf een punt van om zich pas ‘terug te trekken’ wanneer jouw probleem voor 100%, en liefst 110%, is opgelost! 

Ze hebben uit eigen ervaring ondervonden dat websites vaak opgericht worden met een team. Daarom hebben ze dan ook een systeem ontwikkeld waarin jij gemakkelijk anderen kan toegang geven tot, één van of meerdere van je, websites. Wil je hen geen volledige toegang geven, geen probleem! Hun 10 jaar ervaring met wordpress hebben ze ook verwerkt in hun dashboard waarop jij alles nauwgezet kan volgen.

Kinsta website hosting service

Het dashboard:

Hun dashboard, MyKinsta, is uniek onder de website hosting services. Het is de parel van hun service en al hun ervaring is hierin verwerkt. Ze weten wat jij wilt weten voor je het zelf beseft! Van het bekijken van je bandbreedte tot je bezoekersstatistieken tot je laadtijden… Het starten van een nieuwe website, het creëren van een testserver, het klonen van je site en een migratie analyse zijn slechts enkele van de nuttige gegevens die MyKinsta jouw biedt!

Onze ervaring:

Onze voorgaande ervaringen met website hosting service verliep alles behalve soepel. De gegevens die voor ons van belang waren, waren gewoonweg vaak niet aanwezig!

Kinsta levert je de perfecte behuizing voor zowel je klanten als jezelf. Je geeft je klanten de beste ervaring op de markt en schenkt jezelf in het proces marktleidende analyse! Zo kun je je focussen op de ontwikkeling van je website terwijl Kinsta jouw website beheert.

Les 8: Schrijven in de seriële monitor

In de vorige lessen werkten we steeds met externe hardware componenten. Componenten zoals knoppen en ledjes gebruikten we frequent in onze schakelingen. Toch gebruikten we meer dan alleen deze componenten… Onze computer was in alle lessen een aanwezig element. We programmeerden er onze codes op en gebruiken het als spanningsbron. Maar de mogelijkheden eindigen daar niet! In de komende lessen zullen we leren hoe we deze bron van mogelijkheden kunnen gebruiken. Deze les leren we hoe we data kunnen sturen naar onze computer. Deze zullen we dan op het scherm van onze computer kunnen analyseren door gebruik te maken van een nieuwe, digitale tool: De seriële monitor.

De seriële monitor:

Door gebruik te maken van de seriële monitor op onze computer kunnen we de doorgestuurde data van de Arduino ontvangen. We vinden de seriële monitor bij de hulpmiddelen in Arduino of met de sneltoets Ctrl+Shift+M.

Seriële monitor aanvragen.

Wanneer we een Arduino aansluiten op onze computer kunnen we altijd de seriële monitor openen. Deze bestaat uit drie delen: De taakbalk, de data-invoer en de instellingen van de seriële monitor. De taakbalk zullen we gebruiken in onze huidige les, les 9. Met deze balk kunnen we onze computer een observerende functie geven. In de data-invoer zullen we de doorgestuurde data naar de Arduino terugvinden. De instellingen stellen ons in staat om de bandlengte te bepalen en aan te passen. De meest gebruikte en voorkomende bandlengte is 9600. Deze veranderen we niet.

Seriële monitor

De functie van de Seriële monitor:

We sturen data naar onze computer… Dat wil zeggen dat onze computer voor de Arduino een uitvoerende functie heeft. Als we de vergaarde kennis van de vorige lessen gebruiken verwachten we een een soortgelijk commando te vinden:

pinMode ( “computer” ; OUTPUT);

Dit is echter niet het geval! De computer kan in eenzelfde programma een uitvoerende en een observerende functie hebben. Ook het verdelen van deze functie over twee verschillende poorten is niet mogelijk. De computer is namelijk slechts met één poort, via de usb-kabel, met de Arduino verbonden.

We moeten dus een andere manier vinden om het onderscheidt te maken. Dit doen we door gebruik te maken van verschillende commando’s. We introduceren een nieuw soort commando’s: de Serial. -commando’s. Deze commando’s gebruiken we voor alle communicatie over bandlengtes.

Meestal zal deze communicatie verlopen met de aangesloten computer. Maar ook andere componenten kunnen deze manier van communicatie gebruiken. De communicatie tussen meerdere Arduino’s is hier een voorbeeld van. In deze les zullen we de commando’s Serial.begin();, Serial.print() en Serial.write gebruiken. Deze commando’s sturen data naar de computer. Meer info over deze commando’s vindt je op onze algemene pagina Arduino commando’s.

Opbouw:

We beginnen zoals altijd met het declareren van onze woorden. Zoals je ziet zullen we een algemene variabele gebruiken ‘a’ en een variabele gemaakt voor grote getallen ‘tijd’.

Serial.begin(9600);

In onze void setup() beginnen we de seriële communicatie op een bandlengte van 9600. Vaak willen we dat alle data op eenzelfde bandlengte word doorgestuurd. Daarom coderen we Serial.begin vaak in de void setup. Dit wil zeggen dat alle data van de Serial; -commando’s op deze bandlengte zal doorgestuurd worden. Onze seriële monitor moet dus ingesteld staan om deze bandlengte te kunnen ontvangen.

Notities:

Serial.begin (9600);
Serial.println (“GameGoeroe”);
delay (2000);
Serial.begin (4800);
Serial.println(“”);
Serial.println (“gameGoeroe”);

Wanneer we de Serial.begin niet in de void setup declareren, krijgen we geen foutmelding. Maar wanneer we de output op de seriële monitor bekijken, dan valt er iets op. De “GameGoeroe” die verstuurd word over de bandlengte 4800 vindt men toch terug op de bandlengte 9600, maar dan als een reeks niets betekende letters. Ook de “GameGoeroe”, die verstuurd is via de bandlengte 9600, resulteert in een reeks niets betekende letters op de seriële monitor met bandlengte 4800.

In onze void loop beginnen we met het gelijkstellen van onze tijd aan het commando millis();. Dit kan niet gedaan worden in de void Setup omdat de tijd vanzelfsprekend niet stilstaat. Mochten we dit declareren in de void setup, dan zou de variabele ‘tijd’ nul blijven. Millis(); geeft namelijk de tijd weer sinds het programma gestart is. Nu zal ‘tijd’ steeds worden ge-update, want de void loop wordt immers steeds opnieuw doorlopen.

In deze code gebruiken een eenvoudig if-functie zodat alle waarden slechts eenmaal geprint worden in de seriële monitor.

Serial.print();

 

Serial.println (” GameGoeroe.com “);

Met dit commando sturen we het woord GameGoeroe.com naar de seriële monitor. De twee aanhalingstekens duiden de arduino dat GameGoeroe.com geen variabele is. De verwerker zal dus het woord letterlijk doorsturen.Het verschil tussen Serial.print() en Serial.println() zit met in de visualisatie in de seriële monitor. Het aanhangsel ‘ln’ staat voor ‘line’ en zorgt ervoor dat nadat deze data doorgestuurd is, de cursor in de seriële monitor een lijn daalt.

 

Serial.println ( 1.1234567,3);
Serial.println ( 1.1234567, 7);

In beide gevallen wordt hetzelfde getal geprint in de seriële monitor. Bij het eerste commando zal het getal echter afgerond worden op drie cijfers na de komma. Het tweede commando rondt het getal dan weer af af op zeven getallen. Vaak wordt dit weggelaten en wordt dus het volledige getal geprint.

 

Serial.println ( 99 , BIN);
Serial.println ( 99 , OCT);
Serial.println ( 99 , HEX);

Deze commando’s zullen het getal 99 driemaal printen. Eenmaal in binaire vorm, eenmaal in octale vorm en eenmaal in hexadecimale vorm. Dit wordt is twee situaties gebruikt. Namelijk wanneer men data moet sturen naar een component die slechts één vorm van data kan verwerken. Ook wanneer men data binnenleest en die men wil veranderen van vorm wordt dit commando gebruikt.

 

Serial.print ( “tijd: “);
tijd = millis();
Serial.println ( tijd);

We starten met het commando Serial.print();. Hierna zal de cursor in de seriële monitor dus niet veranderen van lijn. Ook hier zetten we “tijd:” tussen twee aanhalingstekens. We doen dit omdat we willen dat dit letterlijk geprint wordt. Voor we daadwerkelijk de variabele printen, zorgen we ervoor dat deze ge-update wordt. Daarna printen we de waarde van de variabele ‘tijd’. Dit doen we door het commando Serial.println(); te gebruiken. Nu zetten we het woord niet tussen aanhalingstekens, want we willen dat de Arduino-verwerker de waarde van de variabele doorstuurt.

Serial.write();

Serial.write ( 55);
Serial.println(“”);
Serial.write ( “hello”);

Met Serial.write wordt de opdracht in ASCII-code geschreven. De output zijn dan de ‘normale’-tekens die overeenkomen met die ASCII-code. Zo is 55 de ASCII-code van 7. Wanneer we woorden tussen aanhalingstekens zetten, dan volgt Serial.write dezelfde regel als Serial.print. Meer info over de ASCII-code vindt je in deze tabel.

Output in de Seriële monitor:

Seriële monitor

code

// Eerst zetten we onze woorden om in taal die Arduino begrijpt. 

long tijd;
int a = 1;

void setup() {
// Aangezien dat deze ” loop ” slechts eenmaal doorlopen wordt, declareer je hier jouw poorten.  

Serial.begin ( 9600);
}

void loop() {
// Vervolgens zetten we hier de opdrachten die uitgevoerd moeten worden. Deze “loop” wordt dus steeds herhaald. 

tijd = millis();
if ( a == 1){
Serial.println (“GameGoeroe.com “);
Serial.println(“”);
delay ( 2000);
Serial.println ( 1.1234567,3);
Serial.println ( 1.1234567, 7);
Serial.println(“”);
delay (2000);
Serial.println ( 99 , BIN);
Serial.println ( 99 , OCT);
Serial.println ( 99 , HEX);
Serial.println(“”);
delay ( 2000);
Serial.print ( “tijd: “);
tijd = millis();
Serial.println ( tijd);
Serial.println(“”);
delay ( 2000);
Serial.write ( 55);
Serial.println(“”);
Serial.write ( “hello”);
a = 2;
}
}

Notities

De data-invoer van de seriële monitor wordt vaak gebruikt om een code te testen. Een tweede functie van de seriële monitor is om belangrijke waarden uit de code te controleren. Bij het maken van de codes uit de voorgaande lessen gebruikten we steeds een led. Dit deden we omdat deze een visuele bevestiging was van het succes van de code. De bevestiging kan men ook krijgen door gebruik te maken van de Serial. -commando’s. Het controleren van een code met deze commando’s zorgt ervoor dat we geen extra hardware nodig hebben. Echter het grootste voordeel is dat we zelf kunnen bepalen wat er verstuurd wordt. Zo kunnen we een duidelijk overzicht maken van de fouten in het programma. Dit komen we zeker nog tegen in toekomstige lessen en projecten.

Schakeling

Om deze code te testen hoeven we niets te schakelen.

Lege schakeling

Basislessen Arduino 66.6%

Ondertussen heb je al een globaal idee van de functie en werking van onze seriële monitor. En cruciale factor bij het Arduino gebeuren. In deze code kan je alvast eens proberen om andere waarden en woorden door te sturen naar de seriële monitor.

Als je deze code vlotjes beheerst, ga dan over naar les 9!

Les 7: Ledje dimmen met een for-functie

We leerden al dat we kunnen programmeren met analogWrite(); om een ledje op halve kracht te laten werken. In deze les zullen we hiervan gebruik maken om een ledje te laten dimmen. We zullen hiervoor gebruik maken van een nieuw functie, de for-functie. Voor aanvullende uitleg over functies, raadpleeg onze programmeeromgeving Arduino sectie.

Ledje dimmen:

We programmeren een ledje die geleidelijk aan feller zal branden om daarna ook weer geleidelijk aan het ledje te doven. Met enkel het commando analogWrite(); zou dit zeker mogelijk zijn. Echter zou dit resulteren in een code die lang, onoverzichtelijk en vervelend is om aan te passen. We willen natuurlijk zo efficiënt mogelijk werken en introduceren daarom een nieuw functie: de for-functie.

Voor we beginnen met het doorgronden van deze functie, onderwijzen we onze Arduino in onze, menselijke, taal. Ons ledje is vanzelfsprekend een constante waarde, deze zal namelijk niet opeens veranderen van poort. Voor onze for-functie zullen we een extra variabele nodig hebben, deze declareren we dan ook voor onze void setup(). Deze variabele gebruiken we als een voorwaarde om onze for-functie te doorlopen. We kiezen in deze for-functie voor de variabele ‘i’, zo creëren we een duidelijk verschil tussen de verschillende functies: ‘i’ voor de for-functie en ‘a’ als algemene variabele. Net als in andere lecturen wordt vaak de letter ‘i’ gebruikt.

Opbouw:

We declareren ons ledje als een uitvoerende component, als een OUTPUT. Aangezien we slechts met één component werken en dus ook maar één poort gebruiken, is dit het enigste wat gedeclareerd moet worden. Onze void setup is dus zeer kort, maar zoals altijd uiterst belangrijk.

Onze void loop begint onmiddellijk met onze nieuwe functie. Maar wat kunnen we nu juist met deze functie? Wel, het stelt ons in staat een code een aantal , al dan niet variabel, keer te doorlopen per analyse van de void loop. Concreet wil dat zeggen dat we op voorhand of door gebruik van andere parameters kunnen beslissen hoeveel maal een code gelezen wordt.

Een normale code wordt eenmaal gelezen per analyse van de void loop. De verwerker leest namelijk de code door zonder ooit op zijn stappen terug te keren. Maar met de for-functie kunnen we hem opleggen om na het doorlopen van een stuk van de code terug te keren naar het begin en het opnieuw te doorlopen. Dit zal de verwerker blijven doen tot de voorwaarde in de for-functie niet meer voldaan wordt.

Zo creëren we echter een stuk code die meer doorlopen wordt dan de rest. Deze functie is uniek in het feit dat het de code enorm kan inkorten. Een kleine code is een efficiënte code en efficiëntie is de sleutel tot succes. We leerden al reeds een manier om dit te doen, namelijk met voids! Raadpleeg onze les 4: programmeren met voids voor een uitgebreide uitleg van deze handige tool.

Notities:

De for-loop stelt ons in staat om een code een eindig aantal keer te laten doorlopen. Er zal steeds een maximale waarde zijn, hoe groot we ook onze voorwaarde maken of hoe klein we onze stap ook maken. Er bestaat ook een oneindige for-functie, sterker nog: we hebben hem al oneindige malen vermeld en gebruikt. De void loop is een oneindige for-functie! De code in de void loop wordt namelijk steeds opnieuw doorlopen.

De for-functie

Concreet wordt een for-loop gebruikt om een analoog commando meerdere malen te laten uitvoeren met steeds een andere waarde. Ook wanneer een code meerdere malen doorlopen moet worden wordt de for-functie gebruikt. Voor een code die tweemaal of driemaal doorlopen moet worden is dit niet zo nuttig, maar wanneer we werken met tientallen keren glanst deze functie. Om dit aan ons te kunnen bieden heeft deze functie uiteraard een totaal verschillende opbouw dan onze reeds gekende functies:

 

for ( variabele; voorwaarde; stap ){

aanvullende code

}

 

De for-functie wordt getypeerd door de ‘for’ voor de haakjes, net zoals de ‘if’ bij een if-functie. Bij deze functie hebben we echter wel drie, gescheiden door ‘;’-tekens parameters. De interactie tussen deze drie bepalen het aantal keer dat de aanvullende code zal doorlopen worden.

Eerst wordt de variabele gekozen en zou het nodig zijn gedeclareerd. Dit hebben we al gedaan voor de void setup. Hoewel het in principe niet verkeerd is en dus geaccepteerd zal worden door de Arduino-verwerker, raad ik jullie alle variabele te groeperen voor de void setup. Deze variabele omvat tevens de startwaarde, aangezien de gekozen variabele een waarde heeft. Wanneer deze waarde, zoal in deze code, niet bepaalt is, krijgt deze de waarde nul toegekend. 

Daarna wordt de voorwaarde bepaalt. Deze wordt steeds getest en bepaalt dus of de code wel of niet nogmaals doorlopen wordt. Tot slot hebben we de stap. Dit is de bewerking die de gekozen variabele ondergaat nadat deze gecontroleerd is aan de voorwaarde. De interactie tussen de startwaarde, de stap en de voorwaarde bepaalt het aantal uitvoeringen van de aanvullende code.

Gebruik van de for-functie:

for (i = 0 ; i <= 255 ; i+=5){

analogWrite ( ledRood , i );
delay (30);

}

In deze for-functie zal de variabele starten met de waarde nul. De aanvullende code zal doorlopen worden tot ‘i’ groter of gelijk is aan 255. Bij elke keer dat de aanvullende code zal doorlopen zijn, wordt dit dus gecontroleerd. Na deze controle wordt de ‘i’ verhoogd met vijf. Deze combinatie zorgt ervoor dat de aanvullende code exact 51 maal doorlopen zal worden.

En zo zal het commando analogWrite(); eerst 0, dan 5, 10 ,15 ,20 … sturen naar onze rode led. Deze zal dus steeds feller branden. Wanneer onze led de waarde van 255 zal leveren, is deze functie doorbroken en wordt de volgende for-functie geïnitialiseerd. Deze werkt op eenzelfde manier, maar verlaagd de variabele steeds met vijf. Zo zal het commando analogWrite(); eerst 255, dan 250, 245, 240, 235 … sturen naar onze led. Deze zal dus langzamerhand doven.

Notities:

De getallen in de for-loop zijn in de meeste gevallen een eigen keuze. In deze code is de variabele ‘i’ echter ook verbonden aan het commando analogWrite();. Daarom moet onze ‘i’ binnen het interval [0;255] blijven. Meer informatie over deze voorwaarden vindt je in onze sectie Arduino commando’s.

Code:

Schakeling:

We schakelen een ledje in serie met weerstand van 220 ohm. De  anode verbinden verbinden we  met poort 11 en de cathode met de ground.

For-functie

Basislessen Arduino 58.3%

Ook raden we jou aan om bepaalde waardes of commando’s te vervangen of te veranderen. Zo wordt het al snel duidelijke welke invloed een commando heeft op de werking van de schakeling. In deze code kan je eens proberen om niet met slechts één, maar met meerder ledjes te werken.

Als je deze code vlotjes beheerst, ga dan over naar les 8!

Les 5: Programmeren drukknop met 3 standen

Programmeren van een drukknop met 3 standen via Arduino? Wel, het programmeren van een drukknop hebben we reeds gezien, toch is er meer mogelijk met een simpele knop. We kunnen namelijk een knop met meerdere standen maken. We programmeren in deze les een knop met 3 standen, maar het principe dat we hier gebruiken kan natuurlijk toegepast worden bij 4, 5, 6 of meer standen.

Drukknop programmeren:

We programmeren een drukknop met 3 standen met als doel om 2 ledjes afzonderlijk te laten werken. Onze eerste stand moet dus het eerste ledje doen werken, onze tweede stand zal het tweede ledje doen branden en tot slot zal onze derde stand ze beiden doven.

We beginnen met ons programma zoals altijd: we declareren onze woorden. Zo schakelen we onze rode led en groene led op respectievelijk uitgang 12 en 11. Onze knop schakelen we dan weer op poort 9. Merk op dat in deze code dit constanten zijn, terwijl ‘knopStatus’ en ‘a’ hier variabelen zijn. De eerste variabele, ‘knopStatus’, zullen we gebruiken om de waarde van onze knop in op te slaan. De variabele ‘a’ stelt ons in staat een drukknop met 3 standen te programmeren. Hij zal de Arduino duidelijk maken welke functie uit te voeren.

Opbouw:

Eerst en vooral declareren we onze ledjes als OUTPUT en onze knop als INPUT. Zo kan arduino de uitvoerende poorten van de observerende poorten onderscheiden.

knopStatus = digitalRead ( knop );

Ons programma staat en valt met onze knop. De status van deze knop lezen is dan ook het eerste wat we doen. Tot nu toe is onze code gelijklopend met deze uit les 2: programmeren drukknop. We programmeren nu echter een drukknop met 3 standen, dit wil zeggen dat we meer if-functies nodig zullen hebben.

if ( knopStatus == HIGH && a ==0){

        // code
        a = 1;
        }

    if ( knopStatus == HIGH && a ==1){

     // code
     a= 2;
     }

  if ( knopStatus == HIGH && a ==2){

  // code
  a = …;
  }

 if ( knopStatus == HIGH && a == …){

 // code
 a = 0;
 }

Dit is de kern van het programmeren van een drukknop met 3 standen, voor alle drukknoppen met meerdere standen. We voeren een extra voorwaarde in bij onze if-functie en verhogen deze steeds als we de cyclus doorlopen hebben. Voor wat extra informatie omtrent de if-functie, bekijk zeker nog eens Programmeeromgeving Arduino sectie. Het teken ‘&&’ bekent zoveel als: het ene en het andere moeten voldaan zijn. Nu zal de Arduino-verwerker pas deze code lezen als zowel de knop ingeduwd is en als de variabele ‘a’ de gevraagde waarde heeft. Zo kunnen we steeds bepalen, door onze a een waarde toe te kennen, welke van de if-functies doorlopen zal worden wanneer men op de knop drukt.

Notities:

Zo staat het teken ‘&&’ in mensentaal voor ‘en’, en staat het teken ‘or’ voor het logische ‘of’. Er kan dus ook getest worden: ‘het ene of het andere moet voldaan zijn’. Als beide tegelijk voldaan zijn zal bij ‘or’ uiteraard ook de code in de functie gelezen worden.

knopStatus = digitalRead( knop);

Het is zeer belangrijk dat je tussen elke if-functie je ‘knopStatus’ opnieuw declareert. Het programma werkt namelijk verder met de laatst opgeslagen waarde. Mocht deze update van de ‘knopStatus’ niet gebeuren, zal Arduino elke if-functie uitvoeren per doorloping van de void loop, mocht de knop in het begin ingedrukt worden. ‘knopStatus’ blijft echter ‘HIGH’ en ‘a’ wordt steeds verhoogt zodat deze ook aan de voorwaarde van de volgende functie voldoet.

Bij les 2 gebruikten we slechts twee if-functies. Één om het ledje te laten branden en één om het weer te doven. Je zult echter tijdens het programmeren van een knop met 3 standen merken dat er veel gelijkenissen zijn. Het verschil is dat we in deze les niet stoppen bij slechts één ledje, één status van onze uitvoerende component … Een knop met meerdere standen kan namelijk ook zijn nut bewijzen tijdens het werken met analoge componenten. Hierover meer in onze volgende les.

Code:

// Eerst zetten we onze woorden om in taal die Arduino begrijpt. 
const int ledRood =12; 
const int ledGroen =11;
const int knop = 9;

int knopStatus; 
int a ;

void setup() {

// Aangezien dat deze ” loop ” slechts eenmaal doorlopen wordt, declareer je hier jouw poorten. 
pinMode ( ledRood , OUTPUT);
pinMode ( ledGroen, OUTPUT);

pinMode ( knop , INPUT);
}

void loop() {

// Vervolgens zetten we hier de opdrachten die uitgevoerd moeten worden. Deze “loop” wordt dus steeds herhaald. 
knopStatus = digitalRead ( knop ); // lees de status van de knop en sla deze op in “knopStatus”.

if ( knopStatus == HIGH && a ==0){ // als de knop ingedrukt is EN ‘a’ is gelijk aan 0 :

digitalWrite ( ledGroen, LOW);
digitalWrite ( ledRood, HIGH); 
a =1; // zet integer ‘a’ gelijk aan 1.

delay(500);
}

knopStatus = digitalRead ( knop );

if ( knopStatus == HIGH && a ==1){ // als de knop ingedrukt is EN ‘a’ is gelijk aan 1 :

digitalWrite ( ledGroen , HIGH);

digitalWrite ( ledRood, LOW);
a=2; // zet integer ‘a’ gelijk aan 2.

delay(500);
}

knopStatus = digitalRead ( knop );

if ( knopStatus == HIGH && a ==2){ // als de knop ingedrukt is EN ‘a’ is gelijk aan 2 :

digitalWrite (ledRood , LOW);

digitalWrite ( ledGroen, LOW);
a=0; // zet integer ‘a’ gelijk aan 0.

delay(500);
}
}

Schakeling:

We schakelen een knop aan de 5V spanningsbron en verbinden deze met een 100 000 ohmse weerstand naar de ground. Eenzelfde laatste pin wordt verbonden met uitgang 9 op de Arduino. Het rode en groen ledje zijn respectievelijk op poorten 12 en 11 geschakeld. Beide hebben in serie een weerstand van 200 ohm geschakeld.

Basislessen Arduino 41.6%

Ook raden we jou aan om bepaalde waardes of commando’s te vervangen of te veranderen. Zo wordt het al snel duidelijke welke invloed een commando heeft op de werking van de schakeling. In deze code kan je het belang van de herdefiniëring van ‘knopStatus’ duidelijk zien mocht je dit uit de code halen.

Bij problemen met het programmeren van een knop met meerdere standen, aarzel dan zeker niet om contact op te nemen.

Als je deze code onder de knie hebt, ga dan over naar les 6!

Les 4: Programmeren aan de hand van voids

Efficiëntie is de sleutel tot een succesvol en overzichtelijk programma! Leren programmeren met voids is hiervoor zeer belangrijk … en gemakkelijker dan het lijkt! Geïnteresseerd? Na deze les weet je er alles over!

Het belang van programmeren met voids zit in hun aangename manier van werken. Voids helpen ons aan de ene kant onze code kort en efficiënt te houden en aan de andere kant overzichtelijker te maken…

Programmeren met voids:

Ook hier, zoals in les 3, zullen we een verkeerslicht programmeren. Desondanks de gelijkenis in het eindresultaat, zal deze code een andere opbouw hebben. Het programmeren met voids,verandert dus noch de werking noch de schakeling, alleen de opbouw van de code verschilt. Hoe we dit bereiken wordt later uitgelegd, allereerst zullen we, zoals gewoonlijk, de Arduino-verwerker onderwijzen.

We werken met 3 ledjes, de 3 kleuren van een verkeerslicht. Groen, geel en rood respectievelijk geschakeld op poorten 12, 11 en 10. We maken gebruik van constanten omdat deze woorden onveranderlijk zijn doorheen het programma.

Opbouw:

We declareren, net zoals in les 3, onze ledjes in de void setup als OUTPUT. Zo weet de Arduino dat hij van de circuits, geschakeld op deze poorten, geen info zal krijgen. Deze circuits hebben dus een uitvoerende functie.

Onze void loop bestaat uit een korte code:

verkeersLicht ( lichtGroen , 1000);
verkeersLicht ( lichtGeel , 200 );
verkeersLicht ( lichtRood , 1000 );

Uiteraard is ‘verkeersLicht();’ geen commando van arduino. Dit ‘commando’ is een verwijzing naar een ander deel in de code. Telkens wanneer de Arduino-verwerker deze regel analyseert, zal deze het ander deel van de code doorlopen, alvorens verder te gaan in de void loop. Kortom, we programmeren met voids.

Opbouw van een void:

Ook de void loop is een void, wel één die vooraf geprogrammeerd is om oneindig malen doorlopen te worden. De voids die wij maken hebben ‘carte blanche’. Onze void ziet er als volgt uit:

void verkeersLicht (int ledje , long pauze){
   digitalWrite ( ledje , HIGH);
   delay( pauze);
   digitalWrite ( ledje , LOW);
   }

Algemeen kunnen we stellen dat wanneer we programmeren met voids we telkens twee delen hebben: een code en een naam die de void ‘vertegenwoordigt’. ‘int ledje, long pauze’ zijn geen verplichting om een void te maken. Deze ruimte kan evengoed leeg zijn, zoals bij de void loop en void setup. Echter zul je vaak merken dat dit wel het geval is. Het stelt ons namelijk in staat om een herhaling in commando’s te versimpelen in een void, terwijl, zonder deze mogelijkheid, slechts een herhaling in commando’s met eenzelfde variabelen en waarden vereenvoudigt zou kunnen worden.

void verkeersLicht (int ledje , long pauze){ 
digitalWrite ( ledje , HIGH);
delay( pauze);
digitalWrite ( ledje , LOW);
}

// void met variabelen.

// doel: eenzelfde commando’s met verschillende variabelen vervangen. Bijvoorbeeld:

digitalWrite ( lichtGroen , HIGH);
delay ( 2000);
digitalWrite ( lichtGroen , LOW);
digitalWrite ( lichtGeel , HIGH);
delay (500);
digitalWrite ( lichtGeel , LOW);

void verkeerLicht (){

digitalWrite ( ledRood, HIGH);

delay ( 2000);

digitalWrite ( ledRood, LOW);

}

// void zonder variabelen.

// doel: eenzelfde commando’s met eenzelfde variabelen 

vervangen. Vaak gebruikt om de code te verkorten. 

Bijvoorbeeld:

digitalWrite ( ledRood, HIGH);

delay ( 2000);

digitalWrite ( ledRood, LOW);

digitalWrite ( ledRood, HIGH);

delay ( 2000);

digitalWrite ( ledRood, LOW);

Voids gebruiken in je code:

Het werkt werkt als volgt: wanneer we de void opvragen in de void loop, dan word deze steeds vermeld met waarden. Deze waarden zijn geschreven tussen de haakjes en worden gescheiden door een komma. Bij het maken van de void werd er tussen de haakjes variabelen gedeclareerd. Deze variabelen worden dan gebruikt in de code van de void. Ook deze variabelen werden gescheiden door komma’s..

Bij het oproepen worden de variabelen gelijkgesteld aan de overeenkomstige waarde. Hierna wordt de void uitgevoerd met de juist bepaalde waarden. Zo kunnen we bij eenzelfde reeks van commando’s telkens andere waarden kiezen. Bijgevolg moeten we deze commando’s niet onnodig herhalen.

Voorbeeld:

In de void loop wordt ‘verkeersLicht ( lichtGroen , 1000);’ opgeroepen:

verkeersLicht ( lichtGroen , 1000);   // in code 

void verkeersLicht (int ledje , long pauze)  // algemeen

int ledje = lichtGroen  // waarde toegekend aan variabele ‘ int  ledje’
long pauze = 1000  // waarde toegekend aan variabele ‘ long pauze’

digitalWrite ( ledje , HIGH);
delay( pauze);
digitalWrite ( ledje , LOW);

digitalWrite ( lichtGroen , HIGH);
delay( 1000);
digitalWrite ( lichtGroen , LOW);

Notities:

Dit is de algemene opbouw van een void:

void ‘naam’ ( ‘ mogelijkheid tot variablelen, aantal onbeperkt’){
code
}

De naam van de void is naar volledig naar eigen keuze, net als de code en de variabelen. Je werkt dus met een ‘carte blanche’. Heeft je void nood aan 3,4 of 5 variabelen? Zolang ze juist gedeclareerd zijn is dit zeker geen probleem. Echter wanneer een void 3,4, of 5 variabelen heeft, moet de opgeroepen naam van deze void ook respectievelijk 3,4 of 5 waardes hebben. Ongeacht of deze voorkomen in de code. Dit kan dus niet:

void verkeersLicht(int ledje,long pauze,int GG){
digitalWrite ( ledje , HIGH);
delay( pauze);
digitalWrite ( ledje , LOW);

void verkeersLicht (int ledje , long pauze ){
digitalWrite ( ledje , HIGH);
delay( pauze);
digitalWrite ( ledje , LOW);

verkeersLicht(lichtGroen,1000);

verkeersLicht ( lichtGroen , 1000, 50);

Code:

// Eerst zetten we onze woorden om in taal die arduino begrijpt. 
const int lichtGroen = 12;
const int lichtGeel = 11;
const int lichtRood = 10;


void setup() {
// Aangezien dat deze ” loop ” slechts eenmaal doorlopen wordt, declareer je hier jouw poorten. 
pinMode ( lichtGroen, OUTPUT);
pinMode ( lichtGeel , OUTPUT);
pinMode ( lichtRood , OUTPUT);
}


void loop() {
// Vervolgens zetten we hier de opdrachten die uitgevoerd moeten worden. Deze “loop” wordt dus steeds herhaald. 
verkeersLicht ( lichtGroen , 1000);
verkeersLicht ( lichtGeel , 200 );
verkeersLicht ( lichtRood , 1000 );
}


void verkeersLicht (int ledje , long pauze){ 
// Tot slot hebben we onze void. Deze voids bevat twee variabele, namelijk ‘int ledje’ en ‘ long pauze’. 
digitalWrite ( ledje , HIGH);
delay( pauze);
digitalWrite ( ledje , LOW);
}

Schakeling:

Zoals in les 3 schakelen we drie ledjes in serie met een weerstand van 220 ohm. De anode van het groen, gele en rode ledje wordt respectievelijk met poorten 12,11 en 10 verbonden. De cathode wordt telkens met de ground verbonden.

programmeren met voids
Basislessen Arduino 33.3%

Ook raden we jou aan om bepaalde waardes of commando’s te vervangen of te veranderen. Zo wordt het snel duidelijke welke invloed een commando heeft op de werking van de schakeling.

Bij problemen met het programmeren met voids en het verkeerslicht, zeker niet aarzelen om contact op te nemen.

Als je het werken met het ledjes voldoende beheerst, ga dan over naar les 5!

Les 2: Schakelen en programmeren van een drukknop

Hoe programmeren we een drukknop? Weer een nieuwe vraag om met veel zin onze tanden in te zetten, laten we van start gaan met les 2!

We hebben vorige les gezien hoe we een ledje laten branden met behulp van een Arduino code. Bij die schakeling wordt echter de cyclus steeds opnieuw uitgevoerd. Na het uploaden hebben wij er namelijk geen hand meer in. Met deze code willen we jullie de eenvoudigste manier aanleren om je programma ook met een externe factor rekening te laten houden.

In deze code zullen we ook voor het eerst eens gebruik maken van een functie. Een uitgebreide beschrijving van functies vindt je op onze sectie programmeeromgeving.

Programmeren drukknop:

Ook hier zetten we voor onze void setup onze woorden gelijk aan uitgangen van arduino. Bij “knopStatus” en “a” staat er echter geen uitgang. Dit zijn variabelen. Deze schrijven we hier omdat het een overzichtelijke structuur biedt. Zo kunnen we alle woorden terugvinden voor de void setup. Wanneer we deze zouden in de code schrijven, bijvoorbeeld vlak voor het gebruiken ( wat geen conflict zou opleveren met de verwerker ), dan zouden we moeilijkheden krijgen wanneer we aanpassingen moeten doorvoeren. Bij codes is namelijk vaak zo dat een bepaalde variabele meerdere malen aangeroepen en gewijzigd wordt. In dit geval is het natuurlijk niet meer vanzelfsprekend om deze woorden terug te vinden.

“knopStatus” en “a” hebben nu nog geen waarde, maar Arduino zal ze herkennen als een ledige waarde. Dit wil zeggen dat wanneer de waarde van het woord gevraagd voor er iets aan toegekend is, Arduino deze zal definiëren als een grootheid nul.

Notities:

We maken steeds een onderscheid tussen woorden die gelijk gesteld zijn aan uitgangen van Arduino en variabelen. Voor de verwerkers is er echter geen onderscheid. “knopStatus = 12;” en “ledRood = 12 ;” is voor de verwerker gelijk. Acties zoals “digitalWrite( knopStatus , HIGH);” en 
“digitalWrite( ledRood , HIGH);” zullen dus eenzelfde resultaat hebben, mochten beiden gedeclareerd zijn als OUTPUT. Hier zit het verschil tussen beide. De uitgangen zullen we nog moeten declareren, terwijl dit voor de variabelen niet nodig is.

Opbouw:

In de void setup declareren we onze ledRood als een OUTPUT. De knop die we zullen schakelen is natuurlijk geen OUTPUT. We willen geen data versturen naar de knop, maar juist ( in dit geval binaire ) data ontvangen. Arduino moet dit natuurlijk weten, daarom declareren we onze knop als INPUT, als een observerende poort.

knopStatus = digitalRead ( knop );

Allereerst moeten we natuurlijk de status van onze knop inlezen. Omdat dit een binaire component is, zullen we slechts twee verschillende waardes kunnen opvragen. LOW wanneer de knop open is en HIGH wanneer de knop gesloten is. Respectievelijk zal de opgeslagen waarde 0 en 1 bedragen. 

if ( knopStatus == HIGH && a ==0)

Onze eerste if-functie zal geactiveerd worden wanneer er aan twee voorwaarden voldaan is: de knop moet worden ingedrukt en “a” moet gelijk zijn aan nul. Wanneer deze twee voorwaarden voldaan zijn, dan zal de led branden, maar zal ook “a” gelijk gesteld worden aan één. Dit doen we zodat wanneer de knop nogmaals ingedrukt wordt dat niet deze, maar de andere if-functie geactiveerd zal worden.

Notities:

Hoewel de opgeslagen waarde van de knop 0 of 1 zal zijn, mag je toch de gelijkheid met ‘HIGH’ en ‘ LOW’ testen. Arduino herkent namelijk ‘HIGH’ als 1 en ‘LOW’ als 0.

if ( knopStatus == HIGH && a ==0){ 

}

knopStatus = digitalRead ( knop );

if ( knopStatus == HIGH && a ==0){ 

}

Tussen beide if-functie word nogmaals gecontroleerd welke waarde de knop doorgeeft. Deze lijn is zeer belangrijk! Mocht deze hier niet staan, dan zou het programma direct de tweede if-functie activeren, ook als de knop niet ingedrukt is. De waarde van knopStatus is echter nog steeds “HIGH” en we hebben nergens gevraagd om deze te wijzigen of nogmaals te checken. Dit doen we dus hier, vlak voordat we controleren of de tweede if-functie geactiveerd mag worden.

Tot slot, wanneer we een tweede maal op de knop duwen, wordt de tweede if-functie geactiveerd. Hier wordt de led uitgeschakeld en “a” weer gelijk gesteld aan nul. Vervolgens wordt de eerste if-functie opnieuw geactiveerd wanneer de knop nogmaals ingedrukt wordt.

Notities:

We gebruiken hier een dubbele voorwaarde in onze if-functies. Dit geeft tot gevolg dat we wel degelijk een drukknop hebben. Mochten we het integer “a” niet gebruiken en wat aanpassingen maken aan het programma, dan zou de led alleen maar branden als de knop ingedrukt is, maar nooit als deze niet ingedrukt is.

Voor meer uitleg over de gebruikte commando’s, pinMode(); , digitalRead(); , digitalWrite(); en delay(); kunnen jullie onze sectie commando’s raadplegen.

Normaal gezien zouden nu beetje bij beetje alle stukjes op hun plaats moeten vallen. We nemen nu nog een kijkje naar de code voor het programmeren van onze drukknop.

Code:

// Eerst zetten we onze woorden om in taal die Arduino begrijpt.

int ledRood =12; 
int knop = 9; 
int knopStatus; 
int a ;

void setup() {

// Aangezien dat deze “loop” slechts eenmaal doorlopen wordt, declareer je hier jouw poorten.
pinMode ( ledRood , OUTPUT);
pinMode ( knop , INPUT);
}

void loop() {
// Vervolgens zetten we hier de opdrachten die uitgevoerd moeten worden. Deze “loop” wordt dus steeds herhaald.

knopStatus = digitalRead ( knop );        // lees de status van de knop en sla deze op in “knopStatus”.
if ( knopStatus == HIGH && a ==0){     // als de knop ingedrukt is EN ‘a’ is gelijk aan 0 :
digitalWrite ( ledRood, HIGH);              // schakel ‘ledRood’ aan.

a =1;            // zet integer ‘a’ gelijk aan 1.
delay(500);
}

knopStatus = digitalRead ( knop );          // lees de status van de knop opnieuw en sla deze op in “kopStatus”
if ( knopStatus == HIGH && a ==1){        // als de knop ingedrukt is EN ‘a’ is gelijk aan 1 :
digitalWrite ( ledRood , LOW);                 // schakel ‘ledRood’ uit.

a=0;               // zet integer ‘a’ gelijk aan 0.
delay(500);
}
}

Schakeling:

We hebben ondertussen het programmeren van de drukknop al een beetje onder de knie, tenslotte werpen we een blik op de schakeling.

We schakelen een led met een weerstand van 200 ohm in serie. Ook bij de knop is er weerstand nodig, dit om een gesloten kring ( van + naar – ) te hebben. Omdat we het signaal naar de poort zo krachtig mogelijk willen maken, zoveel mogelijk van de stroom naar de poort willen brengen, schakelen we een grote weerstand parallel met de kabel naar de poort. Hier is er weerstand van 100 000 ohm gebruikt.

Programmeren drukknop
16.6%

Probeer ook zeker eens een schakeling te veranderen zodat we het gevolg hebben dat beschreven staat in ” Waarom gebruiken we een dubbele voorwaarde?”

Geen vragen meer? Laat ze gerust achter, of ga door naar les 3!

Les 1: Schakelen en programmeren van een led

Programmeren van een led? Voor veel mensen een onmogelijke opdracht… Toch is het eigenlijk zeer eenvoudig! Met Arduino kunnen tal van schakelingen gemaakt worden, met allerlei componenten. Het begint echter wel allemaal met het schakelen en programmeren van een ledje. Led staat voor light-emitting diode. Ze worden ook vaak gebruikt als vervanging van oude gloeilampen! Bij arduino gebruiken we kleine ledjes om onze schakelingen te maken. 

Waarom een ledje? Het is de perfecte basiscode om zaken mee uit te proberen, je krijgt namelijk een visuele bevestiging van de werking van je code. Denk maar aan een eenvoudige schakeling met een knop of een ingewikkeld parkingsysteem. Een testschakeling met een ledje maakt de werking van je code visueel.

In onze sectie programmeeromgeving kan je nog eens kijkje nemen naar de basisstructuur van Arduino. Daar vindt je een duidelijke beschrijving van de functie void setup en de void loop. De datatypes worden er ook uitgelegd. 

Programmeren Led:

Nu gaan we echt aan de slag met het programmeren van onze led! Velen denken dat moeilijke woorden deel uitmaken van het programmeren. Niets is verder van de waarheid. Tijdens het programmeren kunnen we namelijk zelf onze woorden bepalen.

Daarom onderwijzen we vóór de ‘setup’ steeds de Arduino, zo leert hij onze woorden. De Arduino herkent namelijk onze woorden niet vanzelf! De Arduino kent enkel getallen, bepaalde vaste commando’s en datatypes. Zo weet de Arduino niet wat wij schakelen aan een bepaalde poort. Hij zal ook geen onderscheidt maken tussen bijvoorbeeld  de woorden ‘led’ of ‘motor’, omdat hij deze woorden niet kent! Daarom moeten we elk woord een datatype en optioneel een waarde toewijzen. 

Zo weet Arduino welke waarde hij moet gebruiken als ‘led’ vermeld word in de code. Het datatype zegt de Arduino wat de minimale en maximale waarden zijn van het interval waartussen deze onbekende zal liggen. Wanneer we er direct een getal aan toekennen, dan wordt dit de startwaarde van de variabele.

int led = 12;

Hier is dus ‘led’ een ‘integer‘ datatype met als startwaarde 12. Dit wil zeggen: Als we de waarde van onze led nooit veranderen, zal deze dus constant een waarde van 12 hebben. Bij het programmeren van een led zal dit het geval zijn! 12 is ook een poortnummer, dus we kunnen het woord ‘led’ ook gebruiken als poort… 

Dat is dan ook de bedoeling. Wanneer we willen dat de led een actie onderneemt, kunnen we in de code ook het woord ‘led’ gebruiken. Anders zouden we steeds de waarde 12 moeten gebruiken. Dit zou het extreem moeilijk maken om alles uit elkaar te houden. 

Opbouw:

pinMode (poort, functie);

pinMode (led, OUTPUT);

Met het commando pinMode(); declareer we onze ‘led’ als een uitvoerende poort, als een OUTPUT. Dit doen we in de ‘setup’. Deze code zal slechts eenmaal doorlopen worden en wordt gebruikt om zaken te declareren. Nu weet de arduino dat, wat er ook geschakeld is aan deze poort, het iets is waar hij signalen/spanning naar toe moet sturen. Hij zal dus geen rekening houden met inkomende signalen van deze poort. In ons geval zal dit geen enkel probleem geven. Toch nemen we direct de juiste gewoonte aan om elke gebruikte poort te declareren naar zijn functie.

digitalWrite (poort, toestand);

digitalWrite (led, HIGH);

digitalWrite (led, LOW);

Met het commando digitalWrite(); schrijven we de toestand dat we willen realiseren. Bij HIGH zal de led gaan branden, bij LOW gaat de led uit. Dit zijn de enigste toestandsmogelijkheden bij dit commando. Alles of niets, aan of uit, 1 of 0 … digitaal dus! Bij het programmeren van een led is dit commando essentieel. Het geeft ons namelijk de mogelijkheid om onze led aan te sturen.

delay (tijd);

delay (1000);

Het delay(); commando zorgt voor een pauze uitgedrukt in milliseconden. Dit commando pauzeert de leessnelheid van arduino. Zonder dit commando zou arduino de loop zo snel uitvoeren dat onze ogen het activeren van oner led niet zouden kunnen waarnemen!

Het resultaat van deze code is een ledje dat blijft knipperen. Tussen elke puls zou er één seconde pauze moeten zijn.

Code:

// Eerst zetten we onze woorden om in taal die Arduino begrijpt.

int led = 12;
void setup() {
// Aangezien dat deze “loop” slechts eenmaal doorlopen wordt, declareer je hier jouw poorten.
pinMode (led, OUTPUT);
}
void loop() {
// Vervolgens zetten we hier de opdrachten die uitgevoerd moeten worden. Deze “loop” wordt dus steeds herhaald.
digitalWrite (led, HIGH);
delay (1000);
digitalWrite (led, LOW);
delay (1000);
}

Schakeling:

Voor deze code hebben we uiteraard ook een schakeling nodig. Deze bestaat uit een arduino, die verbonden is met je computer, en een breadbord. Meer informatie over deze onderdelen vindt je in onze arduino voor dummies sectie. Het ledje is een polaire component. Dit wil zeggen dat deze component slechts op één manier in een schakeling geschakeld mag worden. Deze heeft namelijk een positieve kan, de anode, en een negatieve kant, de cathode. De les is in serie geschakeld met een weerstand van 220 ohm om de stroomsterkte te beperken.

Programmeren ledje

Het apart aankopen van verschillende componenten in zeer kostelijk. Daarom raden we jullie aan om een totaalpakket aan te schaffen dat voor alle lessen en veel meer zal voldoen. De componenten die dit pakket bezit zijn erop gedoeld om beginners te ondersteunen, maar ook om later volwaardige projecten mee te kunnen maken. We kunnen dit pakket gebruiken bij het programmeren van een led, maar ook bijvoorbeeld voor het fabriceren van een boot op afstandbediening. 

Al bij al is het vinden van een officiële en kwalitatieve Arduino onderdelen niet eenvoudig. Via onderstaande link kan je op bol.com met korting jouw pakket bestellen!

-> Bestel hier je pakket!

8.3%

Probeer ook zeker eens sommige waarden te veranderen of commando’s weg te laten. Zo wordt het snel duidelijke welke invloed een commando heeft op de werking van de schakeling.

Als je het ondertussen het werken met het ledje voldoende beheerst, ga dan over naar les 2!

Les 6: Programmeren analogWrite voor dummies

In onze eerste les maakten we al kennis met het commando DigitalWrite();. In les 6 gaan we een stapje verder en leren we programmeren met analogWrite();. Beiden zijn commando’s gelinkt aan uitvoerende componenten, maar hier later meer over. Een volledige ontleding en gebruik van al onze commando’s wordt gegeven in onze sectie Arduino commando’s.

Programma:

We leerden al hoe we een ledje laten werken met digitalWrite. We programmeerden steeds dat ofwel het ledje moet branden ofwel het ledje gedoofd moet zijn. Maar wat als we het ledje op halve kracht zouden willen laten werken? Wel, dat kunnen we programmeren met analogWrite.

Eerst en vooral declareren we onze woorden. Onze ledje en onze knop schakelen we respectievelijk op uitgang 11 en 10. Deze declareren we als constanten terwijl we ‘knopStatus’ en ‘a’ declareren als variabelen. We schakelen ons ledje op uitgang 11 omdat deze PWM-signalen kan versturen. Deze zullen we nodig hebben om een variabele spanning over de led te bregen.

PWM-signalen:

PWM-signalen of pulse with modulation is een manier om met digitale middelen een analoog output te verkrijgen. PWM werkt met bloksignalen. Je hebt de maximum spanning enerzijds en de minimum spanning anderzijds. Door zeer snel te wisselen tussen beide krijgen we een resulterende spanning die tussen beide extrema liggen. Theoretisch gezien zouden het licht voortdurend knipperen, maar omdat deze wisseling sneller gaat dan de frequentie van onze ogen, zien we deze niet. De grote van de resulterende spanning hang of van de procentuele verhouding van de extrema per puls. Hoe langer deze dus bij de maximum blijft, hoe hoger dus de resulterende spanning.

PWM-signalen

Opbouw analogWrite:

Allereerst maken we een onderscheid tussen de uitvoerende en observerende poorten. Onze ledje programmeren we als een OUTPUT, een uitvoerende poort, en onze knop als een INPUT, een observerende poort.

We maken in deze code gebruik van een knop met vier standen. Zo kunnen we onze led op drie verschillende sterktes laten werken. De vierde stand gebruiken we om het ledje te doven.

analogWrite ( ledRood, 85);
analogWrite ( ledRood, 170);

Bij digitalWrite was het alles of niets, wit of zwart, 1 of 0… Dit was binaire, digitale taal. Echter wanneer we programmeren met analogWrite, kunnen we de grootte van de spanningsval over onze component, ons ledje, zelf kiezen. Een Arduino board kan een maximale spanningsval leveren van 5V. Omdat dit kan worden beïnvloed door gebruik te maken van extra componenten, maakt de Arduino geen onderverdeling in de hoeveelheden spanning. Daarom is alles op schaal omgezet. De maximale spanning staat gelijk aan 255, de maximale decimale waarde van een byte. Zo is, met enkel een Arduino-board, 128 gelijk aan 2,5V. 128 is namelijk de helft van 255, zodoende is 2,5 de helft van 5.

Notities:

analogWrite ( ledRood, 255);
analogWrite ( ledRood , 0 );

In dit voorbeeld programmeren we met analogWrite voor de maximale 255, en de minimale, 0 spanningsval. Deze commando’s zijn dus alles of niets, wit of zwart, 1 of 0… Binaire, digitale taal dus. Deze commando’s zijn dan ook respectievelijk gelijk aan digitalWrite( ledRood , HIGH) en digitalWrite ( ledRood, LOW).

In deze code zal de led bij de eerste druk op de knop dim zijn. Wanneer er meerdere malen gedrukt wordt zal de led steeds feller branden tot deze bij de vierde druk weer zal doven.

Code:

// Eerst zetten we onze woorden om in taal die arduino begrijpt.
const int ledRood =11;
const int knop = 10;
int knopStatus ;
int a = 0;

void setup() {
// Aangezien dat deze ” loop ” slechts eenmaal doorlopen wordt, declareer je hier jouw poorten.

pinMode ( ledRood , OUTPUT);
pinMode ( knop , INPUT);
}

void loop() {
// Vervolgens zetten we hier de opdrachten die uitgevoerd moeten worden. Deze “loop” wordt dus steeds herhaald.

knopStatus = digitalRead ( knop);
if ( knopStatus == HIGH && a==0){
analogWrite ( ledRood , 85); // levert 1,6667 V
delay ( 1000);
a = 1;
}

knopStatus = digitalRead ( knop);
if ( knopStatus == HIGH && a ==1){
analogWrite ( ledRood , 170); // levert 3,3333 V
delay ( 1000);
a = 2 ;
}

knopStatus = digitalRead ( knop);
if ( knopStatus == HIGH && a == 2 ) {
analogWrite ( ledRood , 255); // levert 5 V
delay ( 1000);
a = 3;
}
knopStatus = digitalRead ( knop);
if ( knopStatus == HIGH && a == 3 ){
analogWrite ( ledRood, 0); // levert 0 V
delay ( 1000)
a = 0;
}
}

Schakeling :

We schakelen een knop verbonden met de 5V spanningsbron en met een 100 000 ohmse weerstand verbonden aan de ground. Eenzelfde laatste pin wordt verbonden met uitgang 9 op de Arduino. Het rode ledje is op poort 11 geschakeld. In serie is er een weerstand van 200 ohm aangesloten.

programmeren analogwrite

Basislessen Arduino 50%

Ook raden we jou aan om bepaalde waardes of commando’s te vervangen of te veranderen. Zo wordt het snel duidelijke welke invloed een commando heeft op de werking van de schakeling. In deze code zal vooral een verschil in waardes bij het commando analogWrite een duidelijk verschil opleveren.

Bij problemen met het programmeren van analogWrite , aarzel dan zeker niet om contact op te nemen.

Als je deze code onder de knie hebt, ga dan over naar les 7!