2022
HOME

Messen, Steuern und Regeln mit ATtiny und Compact
ATtiny85:miniPC-Interface
Ergänzung zum Buch Messen, Steuern und Regeln mit Arduino und Compact

Display mit 48x30 ZeichenEin PC-Interface ist hier ein Stück Hardware, die den Anwender in die Lage versetzt Messungen und Steuerungen vom PC aus direkt durchzuführen. Das Gerät ist dabei ständig per USB oder Bluetooth mit dem PC verbunden.

Neben einem Arduino kann ein ATtiny85 mit dem entsprechenden Sketch ebenfalls als PC-Interface Verwendung finden. Mit der plattform-unabhängigen und kostenfreien Software Compact Red Needle sind dann einfache Messungen und Steuerungen direkt, oder per Programm möglich. Auch Messdiagramme lassen sich darstellen.




Hardware Phantom-Interface versus ATtiny85

Die Mess-Software kann analoge und digitale Signale verarbeiten. Sie basiert auf einem Interface mit zwei analogen Eingängen, acht digitalen Ausgängen und acht digitalen Eingängen. Ein analoger Ausgang wird ebenfalls unterstützt.

Der ATtiny85 verfügt mit seinem 8poligen Gehäuse im einfachen Fall nur über sehr wenige Anschlüsse. Da die Software seriell mit dem PC kommuniziert, bleiben abzüglich der erforderlichen Spannungsversorgung bei diesem Minimalsystem noch vier Anschlüsse übrig. Der unten dargestellte Sketch unterstützt beim ATtiny85 zwei analoge Eingänge und einen Digital-Ausgang. Optional kann ein Digital-Eingang verwendet werden.

Um das ATtiny-Interface zu verwenden, muss ein entsprechender Sketch einmalig übertragen werden, damit sich die Mess-Software Compact Red Needle mit der Hardware verbinden kann.


Software ATtiny85 simuliert ein anderes Interface

Die Programmierung erfolgt dabei in der bekannten IDE des Arduino mit Hilfe des Arduino Uno als ISP. Ein In-System-Programmierung, auch bekannt als In-Circuit Serial Programming (ICSP) ist eine Hardware, mit deren Hilfe ein Mikrocontroller programmiert werden kann. Der folgende Sketch wird entsprechend den Ausführungen zum minimalen Blink übertragen.

Nach Einbindung der Software-Schnittstelle zur seriellen Kommunikation über die Leitungen RX/TX mit Pin 5 un 6 folgen die Festlegungen der Kommando-Bytes des emulierten Interfaces. Als Analogeingänge dienen Pin 2 und 3. Der einzige Digitalausgang kann über Pin 7 gesteuert werden. Um den Digitaleingang an Pin 1 zu benutzen müsste noch eine sogenannte Fuse geändert werden, was hier jedoch nicht erfolgt. Die Hauptschleife erwartet ein Kommando vom PC und reagiert entsprechend.

#include <SoftwareSerial.h>

//CLAB Commands
#define AIN1 60
#define AIN2 58
#define DIN 211
#define DOUT 81

//ATTINY85 Pins
#define portDIN   5     //PB5 Pin 1: reset! (fuse)
#define portAIN1  3     //PB3 Pin 2: ADC3
#define portAIN2  2     //PB4 Pin 3: ADC2
                        //GND Pin 4: GND
#define RX        0     //PB0 Pin 5: Receive Serial
#define TX        1     //PB1 Pin 6: Send Serial
#define portDOUT  2     //PB2 Pin 7: Bit 0 DOUT
                        //VCC Pin 8: 5V

SoftwareSerial Serial(RX, TX); 

void setup()
{ Serial.begin(9600);         //Special CLAB
  pinMode(portDOUT,OUTPUT);   
  pinMode(portDIN, INPUT);    //fuse to use
  digitalWrite(portDIN,HIGH); //PULLUP 
}

void loop()
{ int i, val, inbyte; byte b;
  val = Serial.available(); //Was da?
  if (val>0)
  {inbyte=Serial.read(); //abholen
   delay(5);
   switch(inbyte)
  { case 13  : //CLAB ID nur ab Compact 1.75!
               Serial.write(3);delay(2); //ID
               break;
    case DIN : Serial.write(digitalRead(portDIN));
               break; 
    case AIN1: Serial.write(analogRead(portAIN1)>>2);
               break;
    case AIN2: Serial.write(analogRead(portAIN2)>>2);
               break;
    case DOUT: digitalWrite(portDOUT,Serial.read());
               break;
  }
 }
 delay(10);
}

Der Anschluss an den PC erfolgt über einen USB-Serial-Adapter, um mit den Leitungen RX/TX mit 5V-Pegel zu kommunizieren. Ein FTDI-Baustein, ein Arduino ohne Sketch an Pin 0/1 oder der übrig gebliebene USB-Adapter eines defekten Witty Cloud ESP8266 erfüllen diesen Zweck.


													
													


Analoge Messungen ATtiny85 und Compact
Schaltet man zwei AA-Batterien von 1,5 Volt hintereinander bzw. in Reihe, so erhält man eine Gesamtspannung von 3 Volt. Eine Reihenschaltung von zwei gleichen Widerständen teilt die an der Reihenschaltung angelegte Spannung ebenfalls in zwei gleiche Teile auf. Der 5-Volt-Anschluss speist eine Reihenschaltung aus z. B. zwei 10.000 Ohm (braun-schwarz-orange) Widerständen gegen Masse bzw. GND. Die beiden Analog-Eingänge messen jeweils die angelegte Spannung gegen Masse bzw. GND. Es kann also nur die Gesamt- und die untere Teilspannung direkt messtechnisch erfasst werden. (Kapitel 4.2 aus dem Buch)

Die obere Teilspannung erhält man über die auftretende Differenz hier nur durch Rechnung. Ein batteriebetriebenes Multimeter kann auch die obere Teilspannung messen, wenn der negative Mess-Anschluss nicht mit der Masse der Schaltung verbunden ist. Weiter unten wird gezeigt, dass sich in einer Reihenschaltung alle Teilspannungen addieren und diese Summe der Gesamtspannung entspricht. Spannungspfeile zeigen in Richtung kleinerer Spannungen, wenn ein positiver Wert angegeben ist. Ist ein einstellbarer Widerstand, ein sogenanntes Potentiometer verfügbar, so kann man die Spannungsteilung an Eingang B kontinuierlich durch Drehen oder Schieben am Schleifer verändern.

Mit den Programmiermöglichkeiten von Compact Red Needle ist auch ein Blinken der LED am Digitalausgang auf völlig andere Art möglich.

Obige Zeilen entsprechen den Ausführungen in Kapitel 4.2 in dem die beiden Analog-Eingänge dazu verwendet werden einige Messtechnische Grundlagen zu vermitteln. Das 2022/23 erschienene Messen, Steuern und Regeln mit Arduino und Compact zeigt was mit der freien Software Compact Red Needle noch alles möglich ist.


ATtiny und ISP-Programmer
Mehr Software

.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt