Universele triac-stuurmodule met ATmega
op
Roland Stiglmayr
Elke elektronicus weet wel ongeveer wat een thyristor en een triac zijn, hoe ze werken en waar ze voor te gebruiken zijn. Maar deze componenten bieden enorm veel mogelijkheden die meestal alleen door specialisten volledig worden benut. Omdat thyristoren tegenwoordig eigenlijk alleen nog in speciale gevallen worden gebruikt, als er met heel hoge spanningen (>1 kV) en/of stromen (meerdere kA) moet worden gewerkt, gaat dit artikel uitsluitend over triacs.
Om te beginnen bespreken we de basisfunctionaliteit van een triac en zijn belangrijkste eigenschappen. Daarna gaan we in op de elektronica van de stuurmodule. In figuur 1 ziet u het door de auteur opgebouwde prototype. Door een ATmega te combineren met een triac zijn veel verschillende functies mogelijk: afhankelijk van de firmware kan de module worden gebruikt als een simpele (remote-)schakelaar, een timer, een dimmer of een softstartmodule voor het schakelen van inductieve belastingen zoals transformatoren en motoren.
Basisbeginselen
Een triac is een halfgeleiderschakelaar die de stroom in beide richtingen geleidt als hij is opengestuurd; een echte AC-schakelaar dus. De (belastings-)stroom loopt door de elektroden T1 en T2 (T staat voor Terminal). Deze elektroden worden ook wel MT1 en MT2 (van Main Terminal) of A1 en A2 (van Anode) genoemd. De triac wordt bestuurd via de derde elektrode G (Gate). In figuur 2 ziet u links het schemasymbool van een triac, zoals we het bij Elektor tekenen, en rechts een vereenvoudigd vervangingsschema.
Een triac blokkeert de stroom tot er voldoende stuurstroom via G naar de basis van T1 loopt. Als de triac eenmaal in geleiding is, blijft hij in die toestand tot de stroom door T1/T2 onder een bepaalde (type-afhankelijke) drempelwaarde is gedaald. Dan spert hij weer. Als we met wisselstroom werken, wordt hij bij elke nuldoorgang van de stroom (die niet per se in fase hoeft te zijn met de spanning) uitgeschakeld, tenzij we hem permanent aansturen via G. We kunnen een triac dus ontsteken door een korte, energiezuinige puls aan te bieden, maar we kunnen hem niet zonder meer uitschakelen.
T1 is het referentiepunt resp. de referentiepotentiaal voor de gate G. We kunnen vier verschillende polariteiten onderscheiden op basis van de spanning op de gate en op T2 ten opzichte van T1. Deze zijn weergegeven in het vierkwadrantmodel van figuur 3.
De X-as stelt de polariteit van de spanning op de gate ten opzichte van T1 voor en de Y-as geeft de polariteit van de spanning op T2 ten opzichte van T1. De resulterende vier kwadranten zijn in figuur 3 aangegeven met Romeinse cijfers. Positieve waarden worden weergegeven in rood en negatieve waarden in blauw. De parameters van een triac worden in de datasheets afzonderlijk gespecificeerd voor alle vier kwadranten, omdat ze vaak per kwadrant verschillen.
Parameters
Om de triac te activeren of open te sturen, moet de drempelwaarde van IGT (Gate Trigger Current) worden overschreden. De triac blijft na het einde van de besturingspuls alleen geleiden als de stroom door de belasting op dat moment al groter is dan IL (Latching Current). Is de stroom kleiner, dan gaat de triac na afloop van de stuurpuls meteen weer dicht. De triggerstroom en de andere stromen worden in datasheets voor elk kwadrant afzonderlijk gespecificeerd. Als de belastingsstroom door de eenmaal ontstoken triac beneden de houdstroom IH komt, gaat de triac weer dicht.
Bij inductieve belastingen is er een faseverschuiving tussen de stroom en de spanning die afhankelijk is van het inductieve aandeel. De spanning over de belasting hoeft dan bij de nuldoorgang van de stroom niet per se nul te zijn. Daardoor kan de spanning tussen T1 enT2 bij het blokkeren abrupt naar een hoge waarde springen. Dat kan problemen veroorzaken: als de steilheid van de spanningstoename groter is dan de grenswaarde dVCOM/dt, dan gaat de triac weer geleiden. Bij sommige belastingen kan dat een destructief effect hebben. Een te snelle spanningstoename kan worden voorkomen door een RC-netwerk (een snubber) aan te sluiten tussen T2 en T1. Zogenaamde Hi-Com-triacs zijn veel minder gevoelig voor dit effect.
De parameter dVD/dt is ook van belang. Als deze grenswaarde wordt overschreden wanneer de triac spert, gaat hij ook geleiden. En als de stroom die dan gaat lopen een halve periode duurt, kan een op deze manier ingeschakelde transformator verzadigd raken en plotseling laagohmig worden. Vaak overleven de triac en misschien zelfs de kopersporen op de print dat niet. Een snubber of een Hi-Com-triac kan ook dit helpen voorkomen.
Ook de parameter dIT/dt, de grenswaarde van de maximale stroomtoename na het activeren van de triac, is kritisch. Als die waarde wordt overschreden, wordt de triac vernield en ontstaat er een kortsluiting tussen T2 en T1. Dat komt door de niet-homogene stroomdichtheid rond de gate-elektrode, die tot lokale oververhitting leidt. Omdat de waarde van dIT/dt laag is, vooral in het vierde kwadrant, willen we dit werkgebied vermijden. Het dIT/dt-probleem treedt nauwelijks op als we schakelen op de nuldoorgang van de spanning, maar alleen bij grotendeels resistieve (ohmse) belastingen. Indien nodig kan de stijgsnelheid van de stroom ook worden beperkt door voorschakelen van een kleine lucht-smoorspoel.
De parameter dICOM/dt definieert de grenswaarde van de stijgsnelheid van de stroom bij de nuldoorgang van de stroom. Als deze waarde wordt overschreden, wordt de triac niet uitgeschakeld, maar blijft hij geleiden.
De triac wordt ook ten onrechte ontstoken als de periodieke maximale sperspanning VDRM (Repetitive Peak Off-state Voltage) wordt overschreden. Dat is te voorkomen met een varistor parallel aan T2/T1, om de maximale spanning te beperken.
De laatste parameter die om toelichting vraagt is de grensbelastingsintegraal I2t, oftewel de integraal van het kwadraat van de stroom gedurende 10 ms. Deze grenswaarde komt overeen met de maximale energieabsorptie van de triac. We moeten daar rekening mee houden bij het dimensioneren van de zekering.
De meeste andere grootheden die in het datasheet van een triac te vinden zijn, spreken voor zichzelf. Als u zelf triacschakelingen wilt ontwerpen, zou u nu de ideale triac voor uw toepassing op basis van de parameters te kiezen.
Triac-stuurmodule
Nu de praktijk. Dankzij zijn intelligentie kan onze universele stuurmodule voor triacs multifunctioneel worden gebruikt als eenvoudige schakelaar, als timer met tijdvertraging, als dimmer of voor het regelen van inductieve belastingen: een schaap met vijf poten dat alles kan! En als u bij intelligentie meteen denkt aan een microcontroller, hebt u helemaal gelijk. De keuze is gevallen op een ATmega.
Bij de selectie van de triac moeten we vooral kijken naar de te schakelen stroom en de maximale spanning over de triac. Voor eenfasige netvoeding is 230 V x √2 + reserve ≈ 600 V voldoende. Voor industrieel gebruik is het beter om te kiezen voor triacs met een sperspanning van 800 V vanwege de grote spanningspieken die we kunnen verwachten. De in de praktijk haalbare stroom is niet alleen afhankelijk van de nominale waarde van de triac, maar ook van het gedissipeerde vermogen en dus van de koeling. Dit vermogen is het product van de doorlaatspanning en de geschakelde stroom.
De minimale belastingsstroom is ook belangrijk. Zowel IH als IL moeten duidelijk worden overschreden, anders wordt de belasting niet goed ingeschakeld of is er geen continue stroom. Voor veel eenvoudige toepassingen geschikte typen zijn de 600V-types BT134-600E (4 A) en BTA312B (12 A).
Voeding van de schakeling
Het voeden van de stuurmodule zelf is niet triviaal. Een kleine schakelende voeding zou mooi zijn, maar neemt veel ruimte in beslag. Een capacitieve serieweerstand is eenvoudiger, maar MKT-condensatoren met de benodigde capaciteit en maximale spanning zijn niet bepaald goedkoop. Een ohmse serieweerstand is nog eenvoudiger. We willen de triac gebruiken in de kwadranten II en III. Daarom moet de gatespanning negatief zijn ten opzichte van de elektrode T1 die rechtstreeks op het lichtnet is aangesloten. De eenvoudigste manier om dit te realiseren is met een enkelzijdige gelijkrichter. Maar of dat werkelijk mogelijk is, is afhankelijk van het stroomverbruik van de schakeling.
We moeten daarvoor kijken naar het verbruik van de μC zelf en naar de ontsteekstroom voor de triac. De μC heeft heel weinig te doen en kan daarom het grootste deel van de tijd in zijn zuinige slaaptoestand staan. Omdat korte triggerpulsen voldoende zijn, is de gemiddelde ontsteekstroom laag. We moeten dus kijken hoever we het stroomverbruik kunnen beperken. De μC bevindt zich meestal in de Extended Standby Sleep Mode en wordt alleen gewekt voor het genereren van de ontsteekpuls.
Het ongunstigste geval is hoogfrequent triggeren zonder nuldoorgangsdetectie, waarbij om de 278 µs een triggersignaal wordt gegenereerd. Bij VCC = 4,7 V heeft een ATmega toch wel 1,9 mA nodig. Verder hebben we om de 288 µs (= 3,5 kHz) een piekstroom van 11 mA gedurende 10 µs nodig, dat betekent een gemiddelde stroom van 400 µA. In totaal komen we dan uit op ca. 2,3 mA. Dit bepaalt de waarde van de serieweerstand en het in die weerstand te dissiperen vermogen. Bij enkelzijdige gelijkrichting is de effectieve waarde Ipk / 2 en de gemiddelde waarde Ipk / π. Daaruit volgt:
Ipk = 2,3 mA x π = 7,3 mA,
R = 325 V / 7,3 mA = 45 kΩ,
Ieff = Ipk / 2 = 3,7 mA
zodat we te maken krijgen met een dissipatie van:
Pvv = Ieff2 x R = (3,7 mA)2 x 45 kΩ = 0,62 W.
Als we R opsplitsen in drie afzonderlijke weerstanden van 0,5 W, dan zijn zowel de dissipatie als de spanning per weerstand acceptabel.
Er is nog een complicatie bij het inschakelen: zolang de μC ‘in reset’ is, heeft hij relatief veel stroom nodig en neemt VCC slechts heel langzaam toe. Dit probleem kan worden opgelost door het BOD-niveau in te stellen op 2,7 V en onmiddellijk de slaapmodus te activeren gedurende 250 ms. We komen daar nog op terug.
Veiligheid
Bij schakelingen die rechtstreeks met het lichtnet zijn verbonden, moeten we altijd extra letten op de veiligheid. Als de schakeling in bedrif is, mogen we geen meetinstrument en zeker geen PC aansluiten. Dat kunnen we beter overlaten aan professionals die daarbij een scheidingstrafo gebruiken. Zorg er in elk geval voor, dat er geen spanningsvoerende onderdelen kunnen worden aangeraakt. De schakeling moet worden geïnstalleerd in een isolerende behuizing!
Voor tests of wijzigingen moet de module volledig losgekoppeld zijn van het lichtnet en via een aparte voeding worden voorzien van 5 V. Een 50Hz-signaal met een amplitude van 4 V uit een blokgolfgenerator kan worden gebruikt als signaal voor de nuldoorgangsdetectie. We kunnen dat aansluiten op C4.
Hardware
In het schema (figuur 4) zien we dat de μC met zijn periferie wordt gevoed via de serieweerstanden R11...R13 en de enkelzijdige gelijkrichter D13. C1 vlakt de voedingsspanning af. De MiniMELF-weerstanden R11...R13 zijn voldoende bestand tegen de spanning en het te dissiperen vermogen. Dankzij de hoge impedantie werkt de voeding bijna als een stroombron, waardoor zenerdiode D10 gemakkelijk voor een constante spanning kan zorgen.
De μC wordt nauwkeurig geklokt met X1, zodat we triggerpulsen met een exacte timing kunnen genereren. D12 zorgt samen met de spanningsdeler die bestaat uit R2, R3 en R19...R22 voor een signaal waaruit we de nuldoorgangen detecteren. D5 voorkomt dat dit signaal veel hoger komt dan VCC.
R16 en R17 beperken de gatestroom. C6 staat parallel aan R16 en zorgt voor een snelle triggering van de triac. Parallel aan T1 en T2 van de triac is het snubber-netwerk (R24 + C8) aangesloten, dat onjuiste triggering voorkomt. Aangezien de gebruikte triac een Hi-Com-type is, kunnen we volstaan met een kleine capaciteit en een vrij hoge weerstandswaarde.
Een bijzonderheid is de optionele extra belasting die bestaat uit R25...R27 en C7. Die is alleen nodig als de externe belasting zeer inductief is, zoals bij een transformator. Meestal zijn deze onderdelen niet nodig. De X-condensator CX1 wordt gebruikt voor het onderdrukken van storingen.
De module wordt bediend met de toetsen S1 en S2. Als alternatief kunnen de parallel geschakelde optocouplers OK1 en OK2 worden gebruikt. Gebruik voor voldoende veiligheidsafstanden drukknoppen met lange bedieningspennen. LED1 geeft aan dat de module actief is. IC1 wordt geprogrammeerd via de ISP-interface op JP2. Zekering F1 dient als kortsluitbeveiliging.
Software
De projectsoftware is gemaakt met de Arduino-IDE. Omdat de Arduino-functies erg traag zijn, heeft de auteur die niet gebruikt. Het zelfgemaakte programma is zeer snel en werkt deterministisch. Daarom zijn de sketches bewust niet geport naar Atmel Studio.
Helaas kan de controller niet met de bootloader worden geprogrammeerd. Er zou daarvoor zoveel stroom nodig zijn bij het inschakelen dat de voedingsspanning niet zou opkomen. Daarom moeten de fuses zodanig worden ingesteld dat de loader niet actief is. Het programmeren gaat rechtstreeks vanuit Atmel Studio met een ISP-programmer.
In de projectmap vindt u naast de sketches ook de HEX-bestanden voor elke app. Bij de eerste keer programmeren moeten de fuses worden ingesteld zoals in figuur 5 is aangegeven.
Laad daarna het gewenste HEX-bestand uit de projectdirectory en brand het in de μC (zie figuur 6).
Als u wijzigingen aanbrengt in een sketch, moet u die opnieuw compileren (Check/Compile). Het statusveld in de IDE laat zien in welke directory het gegenereerde HEX-bestand komt te staan. Dat kan bijvoorbeeld zijn:
C:\Users\name\AppData\Local\Temp\buildxyz.tmp/Triac_...ino.hex
Omdat de directory en het buildnummer dagelijks opnieuw worden toegewezen, moet het bestand ook dagelijks worden bijgewerkt in Atmel Studio. Als de map AppData niet zichtbaar is in de Windows-verkenner, kunt u Toon alle bestanden en mappen instellen in de Verkenner onder Extra/Mapopties.
Laad het gewenste HEX-bestand in Atmel Studio en programmeer de ATmega.
Waarschuwing: Bij het programmeren moet de module volledig losgekoppeld zijn van het lichtnet en worden gevoed uit een veilige laagspanningsbron.
Toepassingen
Alle apps hebben dezelfde startprocedure. Bij het inschakelen bepaalt het BOD-niveau van 2,7 V het einde van de reset. Als het programma is gestart, wordt de WatchDog-timer geactiveerd en wordt het programma in de slaapstand gezet. Hierdoor kan VCC veilig en snel toenemen (figuur 7). Als de WatchDog/timer afloopt, wordt een WDT-interrupt gegenereerd en komt de processor uit zijn slaaptoestand. Dan begint de uitvoering van het eigenlijke programma.
In listing 1 zie ziet u een fragment van de sketch, waarin de WD-timer en de slaapmodus worden ingesteld. De listing bevat een gedeelte van de startprocedure. Eerst wordt de WatchDog ingesteld en geactiveerd. Daarna wordt de controller in de slaapstand gezet. Bij het aflopen van de WDT wordt de WDT-interrupt geactiveerd, waardoor de controller weer wakker wordt.
Voor elk toepassingsvoorbeeld is een aparte sketch beschikbaar. Elke app heeft verschillende functies die met de drukknoppen worden bediend. Meer informatie is te vinden in het commentaar in de verschillende sketches.
Eenvoudige schakel- en timer-app
Voor de toepassing “Sketch Triac_no_zd_32” is geen nuldoorgangsdetectie nodig. Daardoor is het een eenvoudig voorbeeld om mee te beginnen. De schakeling wordt voor het programmeren en testen aangesloten op een 5V-voeding. Als u geïnteresseerd bent in het programmeren van de WD-timer, de verschillende slaapstanden, de interrupts, de timerfuncties of de I/O-commando's, kunt u zich verdiepen in de code, die zoals alle voorbeelden gratis kan worden gedownload van de projectpagina bij dit artikel.
De functie als schakelaar of timer wordt geactiveerd door een drukknop. Met de extra bedrijfsmodus “Autostart” start de timer direct na het inschakelen en schakelt hij de belasting weer uit als hij afloopt. Deze functie is te gebruiken om een lamp voor een beperkte tijd in te schakelen. Het uitschakeltijdstip is vastgelegd in het programma.
Het programma genereert in de on-state pulsen van 10 µs met een interval van 278 µs om de triac aan te sturen. Omdat de stuurimpulsen niet gerelateerd zijn aan de netfrequentie, zijn de schakeltijden niet synchroon met de netspanning. In het ergste geval wordt de belasting dus pas 278 µs na de nuldoorgang ingeschakeld. Op dat moment heeft de netspanning al een waarde van 29 V bereikt en treden er spanningspieken op die storingen zouden kunnen veroorzaken. In het oscillogram van figuur 8 is te zien wat er gebeurt in de loop van één seconde: er is geen verband tussen de triggerpulsen en de nuldoorgang. Afhankelijk van de afstand van de triggerpulsen tot de nuldoorgang verandert de spanning over de triac.
De volgende praktische toepassing die de nuldoorgang detecteert en zo de triac synchroon met de nuldoorgang activeert, zal helpen. In tegenstelling tot de volgende metingen is VCC hier het referentiepotentiaal. Omdat T1 van de triac aan VCC ligt, kunt u hier de negatieve polariteit van de stuurimpulsen bij de poort zien.
Schakelaar en timer met nuldoorgangsdetectie
Deze app verschilt van de vorige omdat we nu een uit de netspanning afgeleid signaal gebruiken om de nuldoorgang van de netspanning te detecteren. Dat signaal, op interruptingang INT0, triggert bij de dalende flank een interrupt en markeert zo het begin van de eerste halve periode. Het begin van de volgende halve periode wordt hieruit afgeleid met timer2. Zo is geen complexe hardware nodig voor een nauwkeurige detectie van beide nuldoorgangen.
Om ook bij geringe belastingsstromen de triac betrouwbaar te kunnen activeren, wordt de eerste triggerpuls van elke halve periode verlengd tot 280 µs. Daarna volgen ook nog triggerpulsen van 10 µs. Zo weten we zeker dat IL van de triac wordt overschreden, zelfs bij hoogohmige belastingen. In figuur 9 is dit te zien. Opvallend zijn de korte spanningsstijgingen over de triac tot ongeveer 3 V aan het einde van elke halve periode. Dat verschijnsel ontstaat doordat de kleine stroom door de aangesloten LED-lamp aan het einde van de halve periode kleiner is dan IH. Gelukkig veroorzaakt dat nauwelijks hoogfrequente storingen.
In figuur 10 ziet u de curven gedurende 1 seconde boven elkaar. De stuurpulsen zijn nu synchroon met de netspanning.
Dimmer
Een typische triac-toepassing is een dimmer voor het regelen van de lichtsterkte van lampen. Het vermogen van de lamp wordt aangepast door middel van faseaansnijding. Daarbij wordt het moment van inschakelen van de belasting gevarieerd ten opzichte van de nuldoorgang van elke halve periode (≈fasehoek). Dimmers kunnen nogal wat EMC-problemen veroorzaken, omdat er afhankelijk van de fasehoek steile spanningssprongen kunnen ontstaan. In het ergste geval wordt er geschakeld op de piekwaarde van de netspanning (fasehoek = 90°). Bij het ontsteken daalt de spanning over de triac snel van de piekwaarde naar nul (figuur 11). Afhankelijk van de belasting kunnen daarbij zeer grote stromen en dus grote storingsniveaus ontstaan. Een EMC-filter (bijvoorbeeld uit een afgedankte dimmer) is daarom een must.
Veel LED-lampen werken niet met conventionele dimmers vanwege de manier waarop ze worden gevoed. Ook deze module heeft problemen met sommige LED-lampen. De gebruikte lamp moet daarom dimbaar zijn.
Interessant aan onze triac-regeling is dat hij na de eerste ontsteekpuls nog extra pulsen genereert tot het einde van de halve periode. Dit maakt het gebruik van complexere belastingen mogelijk. Bij volledige uitsturing wordt de eerste puls na de nuldoorgang verlengd tot 190 µs. Dat zorgt ervoor dat IH zeker wordt overschreden, zelfs bij hoogohmige belastingen.
Het uitgangsvermogen wordt ingesteld met de twee knoppen of via de optocoupler.
Soft-start voor inductieve belastingen
Inductieve belastingen, vooral transformatoren, kunnen bij het inschakelen zeer grote stromen trekken. De nuldoorgang van de spanning is in dit geval het meest problematische moment van inschakelen. Ook het restmagnetisme van de kern kan problemen veroorzaken, omdat de inschakelstroom daardoor asymmetrisch kan zijn ten opzichte van de nullijn. Het B-veld (trefwoord hysteresislus) van de kern wordt in één richting verschoven en bereikt zo gemakkelijk het verzadigingsgebied. Dan verliest de wikkeling plotseling zijn inductantie en wordt de verder oplopende stroom bijna alleen nog maar beperkt door de ohmse weerstand van de wikkeling. Vooral ringkerntransformatoren hebben hier last van. Daarom moeten ze worden afgezekerd voor een veel grotere stroom dan nodig is voor de nominale belasting.
Soms wordt de inschakelstroom beperkt met een thermistor of een serieweerstand met vertragingsrelais, zodat eerst een symmetrisch magneetveld kan worden opgebouwd en er dus een zuivere wisselstroom gaat lopen. In theorie kan dit probleem ook worden opgelost door de inschakelstroomhoek langzaam te verhogen. Bij het inschakelen van de transformator beginnen we dan met een fasehoek van ca. 180° en reduceren die dan langzaam tot 0°. Dat is de methode die we hier toepassen.
In figuur 12 ziet u het verloop van de pulsen na een herstart. De eerste triggerpuls wordt ongeveer 8,6 ms na de nuldoorgang gegenereerd. Na elke volle periode wordt er nog een puls toegevoegd totdat de tijd is teruggebracht tot ongeveer 0,3 ms.
In figuur 13 is de stationaire toestand weergegeven. Binnen de eerste 3 ms gaat de belastingsstroom door nul als gevolg van de faseverschuiving. Om een continue stroom te verkrijgen is het noodzakelijk om de stuurimpulsen binnen dit interval nauwkeurig in te stellen.
Figuur 14 toont de stroom door de transformator bij nullast. Aan het nuldoorgangssignaal kunt u het verband met de netspanning zien. Wat u ziet is de magnetiseringsstroom, die zijn maximum bereikt bij de nuldoorgang van de spanning. De rest van de stroom is het gevolg van ijzer- en koperverliezen in de transformator. Het feit dat de stroom niet precies 90° achterblijft, is te wijten aan verliezen en de niet-lineariteit van de kern.
In figuur 15 zien we de transformatorstroom onder belasting. De belastingsstroom en de magnetiseringsstroom worden hier bij elkaar opgeteld. De faseverschuiving wordt gereduceerd door de belasting.
Voorwaarde voor een storingsvrije werking is een volledig symmetrische aansturing van de triac. De stuurpulsen moeten bij beide halve perioden dezelfde afstand tot het nulpunt hebben. IGT en vooral IH spelen hier een rol. Het versterken van de opgaande flank van de gatestroom met het RC-lid garandeert een betrouwbare triggering. Om de triac in geleiding te houden, moet de transformatorstroom groter zijn dan IH. Ringkerntransformatoren zijn problematisch vanwege hun hoge inductiviteit. Maar een kleine extra (ohmse) belasting (R25...R27; optioneel) lost dat probleem op. Bij sommige ringkerntransformatoren is een extra externe belasting zelfs vereist.
Het aansturen van de triac met alleen pulsen was vooral bij transformatoren een uitdaging bij het programmeren van de firmware. Dankzij de gedetailleerde commentaren in de code zijn de trucs gemakkelijk te begrijpen.
Veel plezier met de beschreven apps! Misschien kunt u een nieuwe toepassing bedenken? Met aangepaste firmware is dat gemakkelijk te doen.
(190047-03)
Discussie (1 opmerking(en))