{
"$type": "site.standard.document",
"canonicalUrl": "https://bisse.nl/blog/posts/2021/02-03-project02",
"path": "/posts/2021/02-03-project02",
"publishedAt": "2021-02-03T11:00:00.000Z",
"site": "at://did:plc:t4bzqfd4wo3ukq62opjuvy2u/site.standard.publication/3mpeliratc624",
"tags": [
"attiny"
],
"textContent": "Repost van Tumblr. Sources op github.\n\nDit is m'n eerste experiment met een microcontroller-chip, de ATtiny85.\n\n\n\nOp de foto, op de rechter helft van het breadboard zie je de uiteindelijke\nschakeling van de ATtiny85 die drie LEDs aanstuurt. Op de linker helft\nzie je een Arduino Nano, inclusief drie controle-LEDs, waarmee de tiny\nis geprogrammeerd. De Nano is nu losgekoppeld van de tiny. (Bij dit\nbreadboard zijn de powerrails halverwege onderbroken.)\n\nJe kunt de ATtiny85 heel simpel programmeren met een Arduino. In de\nIDE van Arduino zit hiervoor bij de voorbeelden een kant-en-klare\nsketch ArduinoISP. Gewoon alles aansluiten volgens de\ndocumentatie... wat toch niet vanzelf ging.\n\nJe wordt aangeraden om de Arduino met de tiny te verbinden vanaf de\nzes ICSP/SPI-pinnen, die je op de Nano rechts ziet. Ik had wel een datasheet\nvan de Nano, waarin ook de zes ICSP/SPI-pinnen staan vermeld in een schema, maar ik had\nniet door dat dat schema de onderkant van de Nano weergeeft. Ik keek\nnaar de bovenkant, en had daarom de volgorde van de pinnen verkeerd\nom. Dat werkte dus niet. Omdat ik dit nog niet doorhad heb ik de oude\nmanier van aansluiten gebruikt, via de standaard datapinnen, zoals je\nop de foto kunt zien. Hiervoor moet je in de sketch\nUSE_OLD_STYLE_WIRING definiëren.\n\nOok was me niet direct duidelijk wat bedoeld werd met Pin 10 is used\nto reset the target microcontroller. Niet de fysieke pin 10 van de\nArduino, dat was me direct duidelijk. Maar welke dan wel? Bedoeld werd\nde pin die met D10 is gemarkeerd.\n\nNadat de sketch ArduinoISP geladen is op de Nano moet je een\ncondensator van 10µF zetten tussen GND (-) en RST (+) van de Arduino.\nDit wordt niet vermeld in de documentatie in de sketch, maar moet wel,\nvolgens de diverse video's hierover die op Youtube zijn te vinden\n(zoals deze).\n\nDan, in de Arduino IDE moet je de\nATtiny Core installeren.\nVervolgens onder Hulpmiddelen de volgens instellingen kiezen:\n\n Board: ATtiny25/45/85 (No bootloader)\n Chip: ATtiny85\n Clock: 8 MHz (internal)\n Programmer: Arduino as ISP (ATTinyCore)\n \nDaarna, ook onder Hulpmiddelen kies je Bootloader branden.\n\nHier ging het bij mij eerst mis. Ik kreeg de gevreesde Device signature = 0x000000\nYikes! Invalid device signature, het signaal dat je iets verkeerd\nhebt aangesloten. Eenmaal opgelost kun je een sketch uploaden vanuit\nde Arduino IDE naar de tiny, precies zoals je anders een sketch naar\neen Arduino stuurt.\n\nAls je klaar bent, en de IDE weer wilt gebruiken om een Arduino te\nprogrammeren, dan moet je de instellingen herstellen. Voor de Nano:\n\n Board: Arduino Nano\n Processor: ATmega328P\n * Programmer: AVRISP mkII\n \nOm het gebruik van de tiny te testen wilde ik iets interessanters dan\nde standaard Blink. De tiny heeft drie pinnen die pulse-width\nmodulation (PWM) ondersteunen. Hiermee kun je LEDs aansturen en de\nlichtsterkte variëren. Ik heb een sketch gemaakt dat op willekeurige\nmomenten, een willekeurige LED laat oplichten, met een willekeurige\nlichtintensiteit, waarna de LED langzaam uitdooft. \n\nVoor het normale gebruik van de tiny zit er een pull-upweerstand van\n10kΩ op de reset-pin, die je kunt laten zitten tijdens het\nprogrammeren. Tussen Vcc en GND zit een condensator van 0.1µF om de\nspanning te stabiliseren.\n\nDe schakeling wordt gevoed met 5 volt, maar blijkt ook op 3 volt te\nwerken, al branden de LEDs dan een stuk zwakker.",
"title": "Project 02 — Tiny"
}