zaterdag 22 januari 2011

Button with Analog input






In one of my previous projects I used one analog input for multiple buttons using an array of resistors. You prevent a lot wiring going to the Arduino and you save on input ports.

It is possible to design it so you can also detect if multiple buttons are pressed but my buttons is only tested using one button at the time.

Another advantage is that you can easily build the circuit without a PCB. If you do so, be careful with short circuits or isolate, like I did with heat shrink tube.

maandag 20 december 2010

Room light switch, again


I have started building a living-room-light-switch-module for the 3th time. My current device is using the DCF77. But the received signal is too weak to be reliable. I tried to correct this with software but in the end, I am not satisfied. Looking for other options I found the DS1307. This IC is a programmable clock with back-up battery. And more important, it is quite popular in the Arduino community. Lots of information available. I started to get it working with a breadboard using the computer to read the clock. The output was 00:00:00 all the time. What was wrong? After pre-setting a time, it worked perfectly. I didn’t use the library but copied some code.

woensdag 17 november 2010

Time Lapse Photo rig with Arduino


At last a project with servo's. My digital Canon PowerShot A700 camara is controlled by 2 servo's. One for the power button and one for the trigger button. The rig was built out of a smal tray from an old wooden cabinet. On power-up, the power-switch will be activated and the camera is switched on. I used a potentiometer to set the delay time between to pictures. When writing the program, I also wrote a procedure to control the servo's with the potentiometer. This procedure was used to callibrate the servo's. The parameters are readable as output via the computer. I could fine tune the stance of the servo by turning the potentiometer knob, finding the best position (and the best value) for the servo's to activate the buttons.
I used the power button for longer delay times. If the delay is more than 1 minute, the camera will switch-off and need to power-up again before taking the next photo.
Standard servo's were used at first. These servo's were consuming too much power from the Arduino board. The power IC was ready getting real hot. The smel warned me just in time. I replace the standard servo's for micro servo's.

The picture left shows the backside of the rig and camera. The vertical board is my experimental board with the electronics.
Nothing special, just a couple of pull-down resitor's and connector's for the servo's. Till now I made 3 time lapse clips with MovieMaker.

Lucht
Raket
Schuur

zaterdag 6 maart 2010

Detectie verbeteren

Een echte test is een praktijk test. Het eerste probleem was dat de combo eigenlijk nooit optimaal werkt. Na lang puzzelen en proberen bleek de adapter de schuldige. Ik gebruik zo'n goedkope 5V adapter met USB aansluiting. Ideaal, dacht ik, maar ze zijn niet allemaal evengoed gestabiliseerd. Heb dit op het Arduino forum gepubliceerd.
( http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267355268/1 )

Op het Arduino forum wordt verwezen naar een verbetering van puls ontvangst. Elke seconde wordt een puls gestuurd door de DCF77 zender. Als de puls 100ms lang is, dan is het een "nul". Als de puls 200ms duurt, dan is het een "een". Als je in 1 seconde dus een tweede puls ontvangt is dat een storing. Iemand had daar een aanpassing voor gemaakt en daarop geïnspireerd heb ik zelf een code aanpassing gemaakt. Het simpel kopiëren werkte niet :-)Zelf schrijven is ook veel leuker en bovendien heb ik nu een idee hoe ik nog een verbetering kan maken voor het detecteren van een nieuwe minuut.

zondag 28 februari 2010

De knoppen

De hele opstelling met LCD en KaKu zender kost nogal wat digitale poorten. En als je dan ook nog een paar knoppen wil aansluiten en eigenlijk pin 0 en 1 wil vrijhouden voor communicatie dan kom je snel te kort. Ik gebruik de analoge ingangen voor de bediening. Dat weer eens wat anders maar om 1 analoge ingang te gebruiken voor 1 knop is ook wat bot. Het volgende schema heb ik bedacht voor de situatie dat je verschillende knoppen wilt uitlezen. Dit werkt goed als er maar 1 knop tegelijkertijd wordt ingedrukt.



Als niets wordt ingedrukt is de ingang via de onderste 20K weerstand met de 0 Volt verbonden.

Knop 1 indrukken: 5,0 Volt >>> Analoge ingang zit rechtstreeks aan 5V
Knop 2 indrukken: 4,0 Volt >>> 20K / (20K+5K) * 5V = 4V
Knop 3 indrukken: 2,5 Volt >>> 20K / (20K+20K) * 5V = 2,5V
Knop 4 indrukken: 1,4 Volt >>> 20K / (20K+50K) * 5V = 1,43V

Ik denk dat je wel meer dan 10 knoppen zo kan gebruiken. De A/D conversie is daar goed genoeg voor. Je kan ook in dit geval nog wel mooiere waardes voor de weerstanden kiezen en zelfs wel iets verzinnen waardoor je ook combinaties van knoppen kan uitlezen. Dit is het principe en misschien verzin ik in de toekomst wel iets moois als ik het nodig heb.

Voor mezelf hoef ik maar 2 drukknoppen uit te lezen. Ik wil graag een potentiometer gebruiken voor de programmering. De ene knop wordt in het programma voor het activeren van de programmeermodus (bijvoorbeeld: schakelpunt voor het licht instellen, of tijd voor het uitschakelen) en de tweede knop is een soort "Enter" knop. Met de potentiometer (draaiknop) wordt de hoeveelheid ingesteld maar daar ga ik nog mee experimenten want dit wordt een zelf verzonnen manier van programmeren. Misschien ben ik wel de enige die dit soort UI makkelijk gaat vinden. We zullen zien. Hierbij nog het schema zoals ik het gebruikt. De aansluiting van de potmeter en de LDR (licht gevoelige weerstand) is ook getekend.

zaterdag 6 februari 2010

De print is ontworpen en vervolgen geheel anders in elkaar gesoldeerd. De LCD backlight blijkt niet te verder. Dat is niet zo erg. Dan hoeft ik daar ook niet een digitale uitgang van de Arduino voor te gebruiken.
Het is toch wel erg handig als je kan zien dat de DCF77 module van Conrad elke seconde een signaal krijgt. Daardoor heb ik bedacht dat Pin 13, waar de led aan zit en die nu bij contact elke seconde oplicht, hiervoor vrij te houden. De module zelf geeft zijn puls af aan Pin 4.

Met wat soldeerwerk zit de boel beter in elkaar. De oude 433 Mhz zender uit het oude project gesloopt en bij de experimeteer print gezet. Pin 5 zit aan de data. eigenlijk is het te gek om de module te hergebruiken. Bij Quasar UK kost het ding (QAM-TX1-433: code 220380178906) maar 2,50 aan Engelse ponden. Ik had er al 2 besteld voor dat ik wist hoe goed ze werkten. En die ene extra module is naar Paul gegaan. Voor een kleine 12 pond had ik het pakketje snel in huis. Maar ik wil nu verder dus toch maar de oude gepakt. Moet maar een paar extra bestellen.

Vervolgens de juiste library in de code zetten en hopen dat de code de andere libraries en interrupt toestanden van de DCF77 niet zal verstoren. En hoera: het werkt naast elkaar.
Daarmee zijn de grootste risico's bekent. De licht sensor en uitlezing van de knoppen zal zeker niet verstoren dus het project is in goede doen.

zondag 24 januari 2010

Contact met Duitsland


Het is gelukt! Niet helemaal betrouwbaar maar met een beetje geluk en pielen ontvang ik van de Duitse zender DCF77 de juiste atoomtijd en datum. Probleemjes die ik nog heb zijn:
LCD reageert niet helemaal lekker. Soms zie ik alleen de eerste regel.
Ontvangst is wat willekeurig.
Ben met de Arduino ontwikkelomgeving naar versie 17 gegaan. Daarin zouden de LCD library problemen zijn opgelost. Maar er is toch nog een bug, die pas in Arduino SDK 18 is opgelost. Geprobeerd om met de hand de library aan te passen. Op zich was dat wel goed gegaan maar het resultaat blijft het zelfde. De 2de regel is niet altijd zichtbaar. Denk dat ik dit probleem maar even laat zitten. Misschien is het ook wel een slecht contact. Het is tenslotte nog een wankele opstelling die beter gemaakt moet worden. Volgende probleem: de KaKu library toevoegen en er een programma omheen bouwen. En ook het fysiek is verre van af. Misschien toch maar eerste een printje ontwerpen? Ik ga experimenteer print gebuiken maar een klein beetje planning is nooit weg. Anders wordt het weer een warboel van draadjes.