Arduino zonwering bediening

Een leuk project voor de Arduino is de zonwering (luxaflex of lamellen) te automatiseren. Wat we hiervoor nodig hebben is een kleine Arduino, voor dit project heb ik gekozen voor de Pro micro uitvoering (5 Volt type) maar ook de nano of de micro zouden hiervoor geschikt zijn. Het principe is zeer eenvoudig, lees om de zoveel tijd een LDR uit om te zien hoe sterk het licht buiten schijnt en draai de stappenmotor naar de lamellen dicht stand wanneer het donker is, naar de volledig open stand wanneer er normaal licht is en naar de half open stand wanneer er felle zon schijnt. Het enige wat we voor dit project nodig hebben is een (energie) zuinig Arduino board, een LDR en een weerstand, een (of meerdere) stappenmotor met een ULN2003 driver boardje. De totale kosten zullen tussen de 15 en 20 euro liggen en dat is een leuke hobby prijs. Onderaan de pagina staan enkele links naar webshops die de benodigde onderdelen kunnen leveren.

Arduino Pro Micro

arduino pro microDit piepkleine board doet alles wat u van de Arduino verwacht maar dan met een beperkt aantal pinnen. Het board heeft 4 keer 10-bit Analoge ingangen, en 12 digitale input / output pinnen waarvan er 5 als PWM pinnen gebruikt kunnen worden. Ook heeft het board hardware seriële aansluitingen Rx en Tx en heeft het een onboard micro USB poort. Het board draait op 16MHz en 5V en heeft een ingebouwde spanningsregelaar die tot 12 volt spanning kan omzetten. Het board heeft ook een 5 volt uitgang pin die een zeer beperkte stroom kan leveren voor aangesloten sensoren. Daarnaast heeft het een voedingsspanning led om aan te geven dat het board onder spanning staat en een RX en TX LED schakeling. Het board bevat standaard geen pin headers en dit lijkt in eerste instantie wat onhandig maar blijkt in de praktijk zeer goed want u kunt de pinnen zelf in elke gewenste manier erop solderen of u kunt direct de draadjes op het board solderen. De Arduino Pro Mini kan worden geprogrammeerd via de ingebouwde USB poort.

Voltage5 V uitvoering
Voltage raw7 - 12 Volt
Digitale pins10 (waarvan 5 PWM)
Analoge inputs4
Afmeting48 mm x 18 mm
SRAM2,5 KB
EEPROM1 KB
Flash32 KB
ChipATmega32u4 16 Mhz

Het board kan met de standaard Arduino programmeer IDE geprogrameerd worden, u kunt het board en de poort eenvoudig in het dropdown menu selecteren. De mogelijkheden van de kleine board zijn erg groot, omdat het piepklein is en amper stroom verbruikt is het een ideaal board voor kleine embedded toepassingen.

Aansluiting LDR

arduino LDR aansluitingVoor het meten van de lichtsterkte gebruiken we een lichtgevoelige weerstand of LDR (light-dependent resistor), een elektrische component waarvan de weerstand beinvloedt wordt door de hoeveelheid licht die erop valt. De weerstandswaarde van een LDR wordt kleiner, naarmate de LDR sterker wordt belicht. Aangezien de Arduino een aantal analoge ingangen heeft kunnen we door middel van een weerstand een spanningsdeler maken die we aansluiten op een analoge ingang van de Arduino. In dit voorbeeld had ik nog een 10k weerstand liggen en dit werkt goed. De LDR is aan één kant aangesloten op de Ground en de weerstand aan de plus 5 volt, hierdoor zal de spanning op het knooppunt afhankelijk zijn van de hoeveelheid licht die op de LDR valt. De waarden die via AnalogRead gelezen worden moeten even experimenteel vastgesteld worden, in mijn opstelling was dit < 100 is volle zon, tussen de 200 en 500 is normaal licht en > 600 is donker. Ik heb de LDR op de plus 5 V pin en de Gnd pin van de Arduino aangesloten en het knooppunt op de A0 ingang. Ik heb de weerstand en de LDR bij elkaar geplaatst en via drie draden op de Arduino aangesloten. De soldeerverbinding tussen de draden en de weerstand en de LDR heb ik met krimpkous afgeschermd, maar hier kunt u ook isolatietape voor gebruiken.

Aansluiting stappenmotor

arduino stappenmoter byj48 aansluitingDe Aduino IDE bevat standaard een library voor het aansturen van één of meerdere stappenmotoren. Als stappenmotor heb ik hier gekozen voor een BYJ48 die zowel in 5 volt als 12 volt versie te koop is en zeer goedkoop is. Omdat de Arduino niet voldoende stroom kan leveren om deze stappenmotor rechtstreeks aan te sturen heeft u er een driver boardje bij nodig. Vaak kunt u de stappenmotor in combinatie met het driver boardje kopen voor rond de 5 a 6 euro, u kunt ook een stappenmotortje en een driver boardje los van elkaar kopen en dan bent u waarschijnlijk 1 of 2 euro duurder uit. Maar desondanks is het een supergoedkoop motortje wat door een overbrenging van 1 op 64 niet veel snelheid kan leveren maar wel veel kracht. Aan het motortje zit standaard een kabeltje met stekker die zo op het driver board geprikt kan worden. Er bestaan een paar verschillende versies van het driver boardje maar het belangrijkste is dat ze allemaal een IN1 tot IN4 aansluiting hebben en een VCC (in ons geval +5 volt) en een GND pin. De GND pin kunnen we zo op één van de vrije GND pinnen van de Arduino aansluiten, de +5 volt kan rechtreeks op de voeding of batterij aangesloten worden. Let op: de +5 uitgang van de Arduino is NIET in staat om dit boardje te voeden. De IN1 tot IN4 sluiten we aan op de pinnen D15, D14, D16, D10 van de Arduino, deze pinnen moeten we in de 1,3,2,4 volgorde definiëren in de Arduino code, dit is enigszins onlogisch maar wel nodig helaas. Op de pinnen D2 tot en met D9 kunnen we eventueel nog een tweede en derde stappenmotor aansluiten, dan zijn echter alle pennen echt op. Ook hier moet u er aan denken dat de IN1 tot IN4 pennen in de code in de volgorder 1,3,2,4 opgenomen moeten worden. Hierna kunt u de stappenmotor in zeer kleine stapjes, vooruit of achteruit laten draaien. De code in de library zal alle aansturing voor u afhandelen.

Het geheel op een experimeteerboard

arduino zonwering bedieningHier ziet u nog eens hoe u de Arduino met de componenten moet verbinden, ik heb zelf de complete schakeling opgebouwd op een plankje met een 6 volt batterijhouder. Voor permanente montage kan het handiger zijn om een netvoeding te gebruiken. Om de waarden van de LDR te bepalen heb ik een rij met if statements op een rij gezet en daarmee de leds op het board aan of uit gezet. Hiermee kon ik de waarden voor donker, licht en extreem licht experimenteel bepalen. Telkens de waarden aanpassen en de code downloaden naar de Arduino en dan de LDR van licht of donker te voorzien en lezen welke leds bij welke waarde gaan oplichten. Daarna moet u bepalen hoeveel slagen het asje van de lamellen moet draaien voor dicht, open en half open. Dit kunt u dan programmeren als waarden in het meegeleverde programma. Dit programma is een zeer ruwe versie van een proof of concept en u kunt het volledig aanpassen aan uw eigen wensen. De grote uitdaging is het vinden en maken van een behuizing en de mechanische verbinding tussen het asje van de motor en de bediening van de lamellen of luxaflex. Ik hoop u hiermee in ieder geval op weg geholpen te hebben om er zelf een hele mooie applicatie van te maken. De onderdelen kunt u bestellen bij een van de webshops die ik onder aan deze pagina vermeld heb of een andere elektronicawinkel naar keuze.

Onderdelen: 1 Arduino Pro Micro, 1 LDR, 1 10K weerstand, 1 (of meerdere) RYJ48 stappenmotoren met ULN2003 driver boardjes, breadboard draad Female / Female (voor eenvoudig aanluiten) en een 6 V batterijhouder.

De prototype code

/*
 Stepper Motor + ldr
*/

#include <Stepper.h>

// change this to fit the number of steps per revolution
const int stepsPerRevolution = 32;  

// initialize the stepper library on pins 15,14,16,10
Stepper myStepper(stepsPerRevolution, 15, 16, 14, 10);

int LDR_Pin = A0; //analog pin 0
int currentPos = 0;

void setStepper(int pos);
void sleep_mode(void);

// -------------------------
// Initialisatie
// -------------------------

void setup() 
{
  TXLED1; // Leds uit
  RXLED1;
}

// --------------------------
// Programmalus
// --------------------------

void loop() 
{
int LDR_waarde;

  LDR_waarde = analogRead(LDR_Pin);
  if (LDR_waarde > 600 ) { //  Donker 
    setStepper(-300); // Dicht
  }
  if (LDR_waarde > 150 && LDR_waarde < 550) { // Gem. licht
    setStepper(300); // Open
  }
  if (LDR_waarde < 100) { // Volle zon
    setStepper(0);  // Half open
  }
  sleep_mode();
}


// --------------------------------------
// Zet steppenmotor in bepaalde positie
// --------------------------------------

void setStepper(int pos) 
{
int i;

  if (pos < currentPos) {
    for (i=currentPos; i>pos; i--) {
      myStepper.step(-1);
      delay(10);
    }
    currentPos = pos;
    return; 
  }
  if (pos > currentPos) {
    for (i=currentPos; i<pos; i++) {
      myStepper.step(1);
      delay(10);
    }
    currentPos = pos;
    return; 
  }    
}

// ----------------------------------
// Wacht een tijd en bespaar zoveel 
// mogelijk stroom! 
// ----------------------------------
void sleep_mode()
{
  TXLED1; // Leds uit
  RXLED1;  
  digitalWrite(15,LOW);
  digitalWrite(16,LOW);
  digitalWrite(14,LOW);
  digitalWrite(10,LOW);
  delay(2000); // 2 Seconden
}

Arduino download en links

Dit zijn een aantal Nederlandse webshops waar ik goede ervaring mee heb, ook kunt u hier uitbreidingboards, sensoren, breadboard, kabeltjes en elektronica onderdelen kopen:
Arduino webshop vanallesenmeer.nl
Arduino webshop bitsandparts.eu
Arduino webshop hobbyelectronica.nl

Hier staan een aantal externe links naar pagina's en documenten die handig en nuttig zijn wanneer u begint met het Arduino board.

Download hier de Arduino IDE
Een goede Nederlandstalige Manual voor de Arduino IDE

 

Boeken over de Arduino computer

boek boek bestellen Wie enigszins bekend is met moderne microprocessor systemen als Arduino, kent ongetwijfeld ook de problemen met dit soort kaarten. Ze zijn te duur om voor elk project een aparte kaart aan te schaffen en zijn bovendien nogal fors van formaat. Het aardige van de ATtiny is dat de schijn bedriegt. Het lijkt een klein IC met een beperkt toepassingsgebied, maar het heeft een verbazingwekkend scala aan (speelse) mogelijkheden. Dit boek beschrijft de enorme veelzijdigheid van de ATtiny microcontroller aan de hand van ongeveer vijftig leuke elektronica projecten, speciaal gericht op de beginner. De meeste ontwerpen zijn volledig uitgewerkt, enkele zijn meer als ontwerpidee gepresenteerd. De inhoudsopgave laat zien dat we ons op vele terreinen zullen begeven, van zonnevolger tot helling indicator. Dit boek is beslist geen theorieboek. Het is een boek dat gelezen zal worden met de soldeerbout in de hand. Voor het programmeren van de ATtiny maken we dankbaar gebruik van een Arduino kaart. Als de Arduino ingesteld word als programmer, kunnen we er de meeste Arduino "sketches" mee overzetten naar de ATtiny. We wensen u veel plezier met het nabouwen van de schakelingen.


boek boek bestellen Building robots that sense and interact with their environment used to be tricky. Now, Arduino makes it easy. With this book and an Arduino microcontroller and software creation environment, you’ll learn how to build and program a robot that can roam around, sense its environment, and perform a wide variety of tasks. All you to get started with the fun projects is a little programming experience and a keen interest in electronics. Make a robot that obeys your every command—or runs on its own. Maybe you’re a teacher who wants to show students how to build devices that can move, sense, respond, and interact with the physical world. Or perhaps you’re a hobbyist looking for a robot companion to make your world a little more futuristic. With Make an Arduino Controlled Robot, you’ll learn how to build and customize smart robots on wheels. You will: Explore robotics concepts like movement, obstacle detection, sensors, and remote control Use Arduino to build two- and four-wheeled robots Put your robot in motion with motor shields, servos, and DC motors Work with distance sensors, infrared reflectance sensors, and remote control receivers Understand how to program your robot to take on all kinds of real-world physical challenges.


boek boek bestellen In just 24 sessions of one hour or less, Sams Teach Yourself Arduino Programming in 24 Hours teaches you C programmingon Arduino, so you can start creating inspired “DIY” hardwareprojects of your own! Using this book’s straightforward, step-by-stepapproach, you’ll walk through everything from setting up yourprogramming environment to mastering C syntax and features, interfacing your Arduino to performing full-fledged prototyping.Every hands-on lesson and example builds on what you’ve alreadylearned, giving you a rock-solid foundation for real-world success! Step-by-step instructions carefully walk you through the most common Arduino programming tasks. Quizzes at the end of each chapter help you test your knowledge. By the Way notes present interesting information related to the discussion. Did You Know? tips offer advice or show you easier ways to perform tasks. Watch Out! cautions alert you to possible problems and give you advice on how to avoid them. Learn how to... Get the right Arduino hardware and accessories for your needs, Download the Arduino IDE, install it, and link it to your Arduino, Quickly create, compile, upload, and run your first Arduino program, Master C syntax, decision control, strings, data structures, and functions, Use pointers to work with memory—and avoid common mistakes, Store data on your Arduino’s EEPROM or an external SD card, Use existing hardware libraries, or create your own, Send output and read input from analog devices or digital interfaces, Create and handle interrupts in software and hardware, Communicate with devices via the SPI interface and I2C protocol, Work with analog and digital sensors, Write Arduino C programs that control motors, Connect an LCD to your Arduino, and code the output, Install an Ethernet shield, configure an Ethernet connection, and write networking programs, Create prototyping environments, use prototyping shields, and interface electronics to your Arduino.



Reacties op het onderwerp: Arduino


32 - Techniek »  -  Arduino »
2018-07-28 11:52:00
Hier kunt u vragen stellen en antwoorden geven die betrekking hebben op de Arduino boards en Atmel processoren. Reacties zullen pas na goedkeuring geplaatst worden, dit kan enige tijd duren.
Reactie van een bezoeker van de site!
Vragen en antwoorden m.b.t. de Arduino boards en Atmel processoren.
Er zijn: 1 reacties!
2018-07-28 11:52:00
Een tijdje terug heb ik platformio ontdekt. Het is een methode waarmee je vanaf de command-line een Arduino project kan bouwen. Alle instellingen (welk bordje, welke seriele poort snelheid, etc), maar ook alle libraries (+versies) die je gebruikt staan overzichtelijk in een tekstbestandje. Je hoeft dus niet meer 3x na te denken als je van project wisselt over wat voor instellingen e.d. je ook al had gebruikt en welke versie van welke library daarvoor nodig was. Libraries worden automatisch gedownload en daarna gecached op je eigen schijf.

Ik gebruik dit nu zelf voor al mijn Arduino projectjes en de Arduino IDE gebruik ik nog maar zelden. Ik gebruik Linux en daarop werkt dit allemaal heel makkelijk. Ik heb het ook wel aan de praat gehad op windows, dat was iets meer moeite, bijv. eerst python handmatig installeren, maar uiteindelijk werkte het daar ook.
Reactie van een bezoeker van de site!


Last update: 18-03-2015
 Binnen dit thema



 Meer thema's


 Lees hier de privacyverklaring van deze site.

Disclaimer.

Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot de informatie die, in welke vorm dan ook, via zijn site wordt aangeboden. Het opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke bron van informatie voor de bezoeker en mag op generlei wijze als instemming, goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden ontleend. Op de artikelen van de heer Pragt op deze Internetsite rust auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen over copyright en het gebruik van de informatie op deze site kunt u contact opnemen met: (email: mail@heinpragt.com). Dit is mijn