Sie sind auf Seite 1von 6

2017/01/22 20:04 1/6 Digispark ATtiny85 USB Review

Digispark ATtiny85 USB Review

Aufbau

Der Digispark ATtiny wird schon fast fertig geliefert, einzig die Header muss man noch ein lten. Das
ist sehr schnell gemacht und berhaupt kein Problem.

So sieht er fertig aufgebaut aus, schon sehr kompakt. Er eignet sich also sehr gut fr kleine Projekte,
ATtiny typisch wie erwartet.

Boxtec Playground - http://playground.boxtec.ch/


Last update: 2016/04/09 11:40 arduino:attinyusb:digispark http://playground.boxtec.ch/doku.php/arduino/attinyusb/digispark

Programmierung

Als nchstes kmmern wir uns um die Programmierumgebung. Hier stellte bis anhin Digispark eine
angepasste Arduino IDE zur Verfgung. Neuerdings bietet aber die Arduino IDE den Board Manager,
darber kann ganz einfach die Digisspark Sources dazu installiert werden.

Hier im Digistump Wiki ist alles genau beschrieben. Die URL fr die Untersttzung im Board manager
ist folgende:

http://digistump.com/package_digistump_index.json

Jetzt gibt es in der Arduino IDE zustzlich einige Digispark spezifischen Beispiele. Diese werden jedoch
erst sichtbar wenn auch ein Digispark Board ausgewhlt wurde.

Gewhnungsbedrftig ist dann vor allem dass in der Arduino IDE kein COM Port sichtbar ist und dass
das Board erst auf Auforderung von der IDE eingesteckt werden soll.

Also erst Programmieren, Uploaden und dann warten bis die IDE das Board verlangt und erst dann
einstecken. Hier der Dialog:

Danach blinkt die eingebaute LED wie gewnscht und jetzt knnen wir richtig loslegen.

http://playground.boxtec.ch/ Printed on 2017/01/22 20:04


2017/01/22 20:04 3/6 Digispark ATtiny85 USB Review

Pins

Hier die Auflistung der Pins.

All pins can be used as Digital I/O


Pin 0 I2C SDA, PWM (LED on Model B)
Pin 1 PWM (LED on Model A)
Pin 2 I2C SCK, Analog
Pin 3 Analog In (also used for USB+ when USB is in use)
Pin 4 PWM, Analog (also used for USB- when USB is in use)
Pin 5 Analog In

Das Model von Boxtec ist Model A, wo die LED auf Pin 1 angeschlossen ist.

Debugging

Der normale Serial Monitor kann nicht wie Arduino blich genutzt werden. Jedoch bietet der Digispark
einige andere Mglichkeiten. Hier die komplette Auflistung.

Ich habe mir das DigiKeyboard ausgesucht. Unter Libraries/DigisparkKeyboard/examples gibt es ein
Beispiel. Dabei kann mit Hilfe der Library und einem Befehl Text an den Computer gesendet werden.
Somit kann gleich wie beim Serial Monitor damit sehr einfach erfahren werden was das Programm
gerade macht. Sobald das Programm abluft ein Texteditor auf dem Computer ffnen und schon
werden die Zeichen welcher der Digispark sendet dargestellt.

Beispielanwendung

Boxtec Playground - http://playground.boxtec.ch/


Last update: 2016/04/09 11:40 arduino:attinyusb:digispark http://playground.boxtec.ch/doku.php/arduino/attinyusb/digispark

I2C Digital Potentiometer

Der Attiny85 kann auch mit I2C kommunizieren. Hier als Beispiel ein digitales Potentiometer (
http://shop.boxtec.ch/digital-potentiometer-i2c-10k-mcp4531-103e-p-41307.html). Wichtig: der
Attiny85 hat fr die I2C Ports keine Pullup Widerstnde. Die Pullup Widerstnde mssen also in jedem
Fall, auch bei sehr kurzen Leitungen eingebaut werden. Um das Ergebnis zur prfen ist eine Led ber
das Potentiometer angeschlossen. Damit kann geprft werden ob sich der Widerstand auch wirklich
ndert.

I2C an Digispark:

Pin 5 PB0 (SDA)


Pin 7 PB2 (SCL)

Hier der Aufbau:

Und hier das Schema:

http://playground.boxtec.ch/ Printed on 2017/01/22 20:04


2017/01/22 20:04 5/6 Digispark ATtiny85 USB Review

Hier das Coding:

// I2C Digital Potentiometer on Attiny85 / Digispark


//
// Connection:
//
// MCP4531 Helvetiny85
// 1 GND
// 2 PB2 (SCL)
// 3 PB0 (SDA)
// 4 GND
// 5,6,7 (Poti)
// 8 VCC (5V or 3.3V)

#include <TinyWireM.h> // I2C Master lib for ATTinys which


use USI

int ledState = LOW;


int potival = 0;
unsigned long previousMillis = 0;
const long interval = 100;

void setup() {
TinyWireM.begin();
}

void loop() {

unsigned long currentMillis = millis();

if(currentMillis - previousMillis >= interval) {


// save the last time you blinked the LED
previousMillis = currentMillis;

// if the LED is off turn it on and vice-versa:


if (ledState == LOW){

Boxtec Playground - http://playground.boxtec.ch/


Last update: 2016/04/09 11:40 arduino:attinyusb:digispark http://playground.boxtec.ch/doku.php/arduino/attinyusb/digispark

ledState = HIGH;
potival = 0; }
else {
ledState = LOW;
potival = 127;}

// Send
TinyWireM.beginTransmission(0x2E);
TinyWireM.send(0x00);
TinyWireM.send(potival);
TinyWireM.endTransmission();

Led Pixel

From:
http://playground.boxtec.ch/ - Boxtec Playground

Permanent link:
http://playground.boxtec.ch/doku.php/arduino/attinyusb/digispark

Last update: 2016/04/09 11:40

http://playground.boxtec.ch/ Printed on 2017/01/22 20:04