Digispark
De manier waarop je de digispark programmeert wijkt af van de standaard manier. Je kunt op internet vinden hoe, maar ik heb de indruk dat deze informatie verouderd is. Als je de versie hebt die je direct in een USB aansluiting kun steken dan wordt aangeraden het aansluiten altijd via een USB-verlengkabel te doen. Dit heeft het bijkomend voordeel dat je het bordje tijdens opladen in een circuit kunt laten zitten.
Bij de nieuwste digispark zit er een rode of groene led op pin 1, vergelijkbaar met pin 13 van de Arduino.
Het is verstandig om als eerste een eenvoudig programma (zoals hieronder) te proberen.
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH);
delay(3000);
digitalWrite(1, LOW);
delay(3000);
}
Weinig pinnen, maar toch krachtig
Ondanks het gering aantal pinnen ondersteunt de digispark de protocollen I²C en SPI, waardoor je beeldschermen e.d. gemakkelijk kunt aansluiten en
ook zijn er drie pinnen die PWM ondersteunen, zodat je een analoge uitgangsspanning kunt simuleren. Er bestaat ook een DigiSpark Pro, met meer mogelijkheden.
- P0 t/m P5: digitalWrite en digitalRead, als normaal. Bij p5: HIGH is 3 volt.
- P2, P3, P4, P5 = A1, A2, A3, A0 dus voor analogRead moet je andere nummers gebruiken!
- P0, P1 P4: kunnen gebruikt worden voor analoge uitvoer via Pulse Width Modulation (PWM).
- Nog meer mogelijkheden: teveel om hier op te noemen, maar zie ook bij de tests verderop.
Solderen van pinnen
Als je een breadboard wil gebruiken (erg handig in de testfase) moet je pinnen op de digispark solderen. Vaak krijg je de pinnen erbij geleverd. Je moet de zes pinnen die tegenover de connector zitten naar beneden solderen en de andere drie pinnen voor GND en voeding naar boven. Als je de digispark later wil inbouwen, zonder de pinnen dan kun je deze eenvoudig verwijderen door ze met de soldeerbout pin voor pin naar beneden te drukken.
De twee uitvoeringen van de digispark.
I²C test
Ik testte de digispark met de Digitaal naar Analoog Converter DAC MCP4725. Met deze DAC kun je een instelbare analoge spanning maken. Bij de digispark moet je pinnen P0 en P2 gebruiken voor SDA en SDL (zie de opdruk op de onderzijde van de digispark). Je kunt dezelfde sketch gebruiken als bij de Arduinop Uno. Om goed te kunnen testen heb ik de uitgang van de DAC gemeten met een EDU09 oscilloscoop. Je ziet ook bij uitvergroting dat de DAC een vrijwel perfecte sinus produceert met weinig ruis, die ook nog heel stabiel is. Omdat in het programma geen delays zijn opgenomen zegt de frequentie van de sinus ook iets over de snelheid. Goed om te weten: de Arduino Uno is zo'n 2,5 keer sneller met dit programma dan de digispark.
Alles werkt zonder noemenswaardige problemen. De DAC is 12 bits, hetgeen betekent dat de uitgang tusssen 0 en 5 volt in 2^12 = 4096 stappen geregeld kan worden. De instelnauwkeurigheid is dus ca 1,2 mV. Conclusie: je kunt nu een nauwkeurige regelbare uitgangsspanning maken met twee superkleine modules.
Zie voor meer details mijn pagina over deze DAC.