Automatische theezetter met aanraakbediening

Collega's die me steeds met het theezakje in de thee zagen dippen zeiden dat ik zoiets toch automatisch moest maken.
Dus voor de gein deze "broodtrommel" gemaakt, met PIC besturing en geprogrammeerd in PIC Basic.

Sommige theesoorten (zoals groene en witte thee) moeten lang getrokken worden.
Door het theezakje continu in beweging te houden is de thee eerder op sterkte (en leuk om naar te kijken).

  
Het elastiekje zit er voor de sier om, het versterkt het "broodtrommel" effect.
 

Dit project lijkt oninteressant maar bevat een paar geinige oplossingen, toch maar even doorlezen dus.
De besturing werkt op oplaadbare batterijen, waardoor er een oplossing moest worden gevonden om de stroomopname tot een minimum te beperken als het apparaat stand-by staat, het heeft namelijk geen hoofdschakelaar, sterker nog, het heeft helemaal geen toetsen (verderop meer info hierover).

Na iedere actie (arm in- of uitklappen of theedippen) wordt de spanning van de servomotor uitgeschakeld en met de PIC Basic instructie SLEEP wordt de besturing in slaap gebracht om de batterijen te sparen.
Met een lage puls van een QT110 IC op PORTB.0 wordt het apparaat steeds uit slaap gehaald (door een interrupt) en in werking gesteld.


Bediening
Als de bovenkant van het apparaat wordt aangeraakt, ontwaakt de PIC even uit zijn slaap, draait de arm naar buiten en valt meteen daarna weer in slaap.
Het apparaat moet hierbij rechtop staan, anders reageert het niet.


Het apparaat heeft geen schakelaars, aanraken is voldoende.
 


1. Ophangen.

2. In laten trekken.

3. In water dippen.

4. Thee klaar.
 
1. Eerst het theezakje ophangen door het touwtje in de zaagsnede te plaatsen.
2. Daarna (opnieuw) de bovenkant van het apparaat aanraken waardoor de besturing weer ontwaakt.
De arm zakt nu langzaam en wacht tien seconden zodat het water in het theezakje kan trekken.
Het theezakje drijft namelijk als het zakje droog is.
3. Na die tien seconden wordt het zakje 20× of 200×, afhankelijk van de keuze*), in het theewater gedipt.
4. Daarna wordt het theezakje langzaam uit de thee gehaald.
Een gong (met HPWM) klinkt door het luidsprekertje om te melden dat de thee klaar is.
Hierna valt de besturing weer in slaap (door instructie SLEEP).
De arm wordt daarbij niet naar binnen gedraaid (anders zou het de thee omgooien).

*) Bij punt 2 kan er een keus gemaakt worden tussen 20× of 200× dippen.
Door na het aantippen van de bovenkant binnen een seconde de bovenkant opnieuw aan te raken kan er om en om gekozen worden tussen 20× of 200× dippen.
De keuze wordt kenbaar gemaakt door het aantal piepjes door de luidspreker.
Klinkt er één piepje, dan wordt er 20× gedipt.
Door nog een keer de bovenkant aan te tippen klinken er twee piepjes; er zal 200× worden gedipt (= 10 minuten).
Nóg een keer aanraken en er zal weer maar één piepje klinken, enzovoort, zo kan er worden "getoggled" tussen 20× en 200× theedippen.
 

Als het apparaat met theezetten (dippen) bezig is, is het mogelijk dit eerder te stoppen door de bovenkant van het apparaat nog eens aan te raken.
Het theezakje wordt dan langzaam uit de thee gehaald en het apparaat valt meteen weer in slaap.

De arm kan alleen worden ingeklapt als het apparaat plat ligt.
Nadat het apparaat plat is neergelegd, moet de bovenkant (nu dus zijkant) worden aangeraakt.
Er klinkt dan door het luidsprekertje een alarmsignaal (pas op je vingers!) en zal na één seconde de arm helemaal in de behuizing verdwijnen.
In die seconde tijd is het nog mogelijk om het inklappen te voorkomen door binnen die tijd nog een keer het apparaat aan te raken.

Of het apparaat plat ligt of rechtop staat wordt gedetecteerd door een hellingschakelaar.
Als het apparaat plat ligt, verbindt de hellingschakelaar PORTB.1 met GND waardoor de PIC weet dat het (na aanraken van de sensor) de arm in kan klappen.

Bij uitklappen geldt dat het apparaat juist rechtop moet staan.
 

   
De ouderwetse kwikschakelaar.
Het kwik ligt altijd onderin.
Links maakt het kwik contact, rechts niet.
Met een hellingschakelaar wordt bepaalt of het apparaat rechtop staat of plat ligt.
Links maken de draden onderling contact, rechts niet.

Een hellingschakelaar is de vervanging van de vroegere kwikschakelaar, die niet meer als nieuw verkocht mag worden (milieu).
De hellingschakelaar is verkrijgbaar bij Conrad, bestelnr. 70 04 44.


Het apparaat werkt op vier oplaadbare(!) batterijen.
De PIC16F628A wordt daarom steeds na iedere actie meteen weer in slaap gebracht (low-power mode), anders zijn de batterijen binnen een paar dagen leeg.
Hiervoor schakelt de PIC eerst de voeding naar de servomotor uit.
Daarna wordt een voorbereiding getroffen om de PIC straks weer uit zijn slaap te kunnen halen door een interrupt op PORTB.0 (een puls, gegeven door de QT110 aanraaksensor).
Nu wordt met de instructie SLEEP de PIC in low-power mode gebracht.
Het stroomverbruik is nu nog maar een paar microampère (µA).
Zorg er bij een PIC op batterijvoeding wel voor dat de fuse brownout detection enabling is uitgeschakeld (in de CONFIG van een 16F628A is dat BODEN_OFF).

De QT110 blijft stand-by om in de gaten te houden of iemand het apparaat aanraakt.
Dit IC neemt maar 20µA op.
Meer info over de QT110 zie het automatische handdoekrek project.

Het apparaat wordt door mij iedere avond één of tweemaal gebruikt (de volle 10 minuten), o.a. voor een kop groene thee voor het slapen gaan.
De batterijen gaan daarbij zo'n tweeënhalf maand mee, voor ze weer moeten worden opgeladen.
Als de batterijen bijna leeg zijn is de servomotor de eerste die ermee stopt, hij krijgt het theezakje niet meer goed omhoog.
De PIC en de QT110 zelf werken nog steeds goed als de spanning naar 2 volt is gezakt.
 


Alleen als het apparaat plat ligt kan de arm worden ingeklapt.
Het elastiekje kan niet echt zijn want dan kan de arm er niet langs.
Daarom is het in tweeën geknipt en zijn de uiteinden aan de behuizing vastgelijmd.

 


Door de vorm van de arm kan het theezakje goed boven een beker hangen.
De arm is gezaagd uit een ongeëtste printplaat met een zaagsnede voor het theezak touwtje.
Ingeklapt zit het in zijn geheel in de behuizing.

 

De arm wordt aangedreven door een goedkope kleine servomotor van Conrad.

8

8 Ga met de muis op de foto staan voor een extra foto.
  Omdat dit maar een tijdelijk project is (als gein) is er geen print voor ontworpen maar is hier gebruik gemaakt van een breadboard zodat, als de lol er af is, deze weer eenvoudig gesloopt kan worden.
De batterijen zijn onderin de behuizing geplaatst zodat het zwaartepunt onderin ligt.

Normale batterijen zijn niet toegepast omdat je dan aan 3 × 1,5V = 4,5V of 4 × 1,5V = 6V spanning komt.
Met vier oplaadbare batterijen komt de spanning rond de 5V uit (4 × 1,25V = 5V) en kun je de voeding rechtstreeks op de PIC en de servomotor aansluiten, zonder een 7805  5V stabilisator.

De werking van het programma wordt voor een deel beschreven in PIC Basic cursus deel 8, het deel dat servomotoren behandeld.

De gong en het alarmsignaal door de luidspreker is beschreven in PIC Basic cursus deel 7.

De instructie SLEEP met daarbij de interrupt op PORTB.0 om de PIC weer uit zijn slaap te halen is (nog) niet behandeld in de cursus, maar kan worden bekeken in het PIC Basic 'Theezetter' programma dat hieronder te downloaden is.
Met de LITE versie kan het programma alleen worden bekeken.
Om het te wijzigen of aan te passen is de FULL versie nodig, omdat het te groot is voor de LITE versie.

 
Programma
Normaal is de PIC altijd in slaap, of de arm daarbij is in- of uitgeklapt maakt niet uit.
Telkens als op PORTB.0 een lage puls van aanraaksensor QT110 krijgt, komt het uit zijn slaap.
Het eerste wat de PIC dan gaat doen is kijken welke actie hij nu moet doen.
Dat kan hij zien aan twee dingen; de BIT variabele én de hellingschakelaar op PORTB.1.
Als PORTB.1 een LAAG niveau heeft, dan staat het apparaat rechtop.
Het programma onthoudt met de BIT variabele (met de naam 'ArmSituatie') of de arm binnen (= '0') of buiten (= '1') is.

BIT PORTB.1 Gebeurtenis na een puls van de QT110 aanraaksensor:
0 LAAG Het apparaat staat rechtop, arm naar buiten brengen.
0 HOOG Niets doen, liggend mag het apparaat de arm niet naar buiten brengen.
1 LAAG Als nu binnen een seconde opnieuw een lage QT110 puls op PORTB.1 komt, dan togglen tussen 20× en 200× dippen.
Als na een seconde geen QT110 puls (meer) wordt ontvangen, dan arm iets zakken, 10 seconden wachten, daarna dippen.
Mocht het tijdens dippen opnieuw een puls van de QT110 krijgen, dan stoppen met dippen en theezakje uit thee halen.
1 HOOG Het apparaat ligt plat, arm naar binnen brengen.

Meteen na één van bovenste acties te hebben uitgevoerd, valt het apparaat weer in slaap, wachtend op een volgend signaal van de aanraaksensor.
De PIC blijft de waarden van variabelen gewoon onthouden als hij in slaap is.

Het programma is zo opgezet dat na het inleggen van de batterijen de besturing meteen in slaap valt.


Schema
Als de PIC in slaap wordt gebracht schakelt deze eerst met de BC327 transistor de voeding van de servomotor geheel uit om de batterijen te sparen.
Anders zou de print (van de servo zelf) constant stroom blijven snoepen.


S1 is de hellingschakelaar die bepaalt of het apparaat rechtop staat of plat ligt.
Eventueel kan er een LED op PORTA.7 worden aangesloten voor 'power on' indicatie.
Vergeet de 10Ω weerstand niet in de voeding van de servomotor.

 

Het project kan ook met een 8-pins PIC worden uitgevoerd.
Voor PIC Basic programmeurs is het interessant om de Basic broncode te downloaden en te bekijken.

De voorloper van dit project (met toetsen) is ook nog te bekijken, let wel, het programma, de besturing en de bediening daarvan is wezenlijk anders.
Misschien wordt het project nog eens vernieuwd.
Plannen zijn er om van een oude elektrische tandenborstel de batterijen via inductie (= contactloos) te laden.

Over PORTB.0 interrupt later meer.


Onderdelenlijst print 141201:
Als de theezetter geen tijdelijke maar een vast project wordt, dan kan gebruik worden gemaakt van de print in plaats van het breadboard.

Print 141201 Zelf etsen of door iemand laten maken (40mm × 26mm)
IC1 PIC16F628A - Download het HEX bestand onderaan deze pagina
IC2 QT110
T1 BC327 PNP transistor
D1 BAT85 Schottky diode
R1 10Ω
R2 1k
C1 220µF (radiaal)
C2 10µF (radiaal)
C3 10n (radiaal)
C4, C5 100n (SMD)
S1 Hellingschakelaar (kantelsensor) van Conrad, bestelnr. 70 04 44
Motor Servomotor ES-035 van Conrad, bestelnr. 22 77 27 (niet meer leverbaar)
Connector Header 3 pins
Speaker Mini-luidspreker 8Ω
IC-voet 8-pins, eigen keus (niet per se nodig)
IC-voet 18-pins, eigen keus (niet per se nodig)
Bimbox Behuizing voor het project
Batterijhouder Voor 4 penlights + aansluitsteker met draad
4 batterijen Penlights, alleen oplaadbaar(!) type gebruiken
Print Stuk ongeëtste printplaat dat dient als aanraaksensor en als arm

Om de stroomopname zoveel mogelijk te beperken bevat de print geen spanningsregelaar.
Daarom alleen oplaadbare penlight batterijen gebruiken, (4 × 1,25V = 5V).
Normale batterijen hebben een hogere spanning, (4 × 1,5V = 6V), waardoor de schakeling stuk kan gaan.

Hoewel de 16F628A wat aan de grote kant is voor dit project (er blijven verscheidene pinnen ongebruikt), is deze gekozen wegens de grote bekendheid alsook voor de CCP/PWM module voor het gonggeluid.

De print wijkt iets af van het schema, in dit opzicht dat de gevoeligheid van de QT110 aanraaksensor nu niet vast ligt, maar door het (PIC Basic) programma ingesteld kan worden met behulp van PORTB.5 en PORTB.6.
Door PORTB.6 LAAG en PORTB.5 HOOG te maken, staat de QT110 aanraaksensor op z'n gevoeligst ingesteld.
Ook is op de print de BAT85 diode (nog) niet geplaatst, deze is er namelijk later bijgekomen (zie schema).
De BAT85 voorkomt voedingsstoringen die door de servomotor werden veroorzaakt.
Dankzij de BAT85 kan de elco nu 220µF zijn (op de componenten opstelling staat nog 1000µF).


De print in de behuizing gebouwd.

De hellingschakelaar zit rechtstreeks op de print gesoldeerd, de draden lang laten zodat deze schakelaar in positie kan worden gebogen.

 



 
 

Dit project stamt uit april 2007 toen de QT110 nog redelijk goed leverbaar was.
Tegenwoordig is deze slecht verkrijgbaar (Farnell heeft nog de QT110a variant).
Er zijn diverse PIC types die nu zelf een ingebouwde touch sensor aan boord hebben (zoek naar mTouch van Microchip op het internet) waardoor bovenstaande is te bouwen zonder apart QT110 IC.
 

Download THEEZET.HEX, V-2 bestand om in een PIC 16F628A te programmeren
Download Theezetter_V-2_NL.bas, de broncode voor PIC Basic
Download schema als PDF bestand
Printlayout 141201 + componentwaarden als PDF bestand 40 × 26 mm >> Afdruk tips <<
Datasheet QT110.pdf
Voorloper van de theezetter (met toetsen in plaats van aanraaksensor)
Automatisch handdoekrek met QT110 aanraaksensor
Bestel geprogrammeerde PIC