banner left Boxtec Banner
Platzhalter BoxtecProdukteForumShopKontaktPlaygroundn/aJobs
 

This is an old revision of the document!


Digispark ATtiny85 USB Review

Aufbau

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

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

Programmierung

Als nächstes kümmern wir uns um die Programmierumgebung. Hier stellte bis anhin Digispark eine angepasste Arduino IDE zur Verfügung. Neuerdings bietet aber die Arduino IDE den Board Manager, darüber kann ganz einfach die Digisspark Sources dazu installiert werden.

Hier im Digistump Wiki ist alles genau beschrieben. Die URL für die Unterstützung im Board manager ist folgende:

http://digistump.com/package_digistump_index.json

Jetzt gibt es in der Arduino IDE zusätzlich einige Digispark spezifischen Beispiele. Diese werden jedoch erst sichtbar wenn auch ein Digispark Board ausgewählt wurde.

Gewöhnungsbedürftig 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 gewünscht und jetzt können wir richtig loslegen.

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 Möglichkeiten. 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 abläuft ein Texteditor auf dem Computer öffnen und schon werden die Zeichen welcher der Digispark sendet dargestellt.

Beispielanwendung

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 für die I2C Ports keine Pullup Widerstände. Die Pullup Widerstände müssen also in jedem Fall, auch bei sehr kurzen Leitungen eingebaut werden. Um das Ergenis zur prüfen ist eine Led über das Potentiometer angeschlossen. Damit kann geprüft 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:

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){
      ledState = HIGH;
      potival = 0; }
    else {
      ledState = LOW;
      potival = 127;}

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

  }

}

Led Pixel

 
arduino/attinyusb/digispark.1460194837.txt.gz · Last modified: 2016/04/09 11:40 by dinoi
 
 

zum Seitenanfang

Letzte Aktualisierung: © boxtec internet appliances · the better security products