GREETBoard – IO Modul

GREETBoard IO Modul - Version 1.1

GREETBoard IO Modul – Version 1.1

Version 1.1

In einigen Versuchsaufbauten kann es schon mal vorkommen, dass nicht genügend Ein- oder Ausgänge zur Verfügung stehen. Wenn noch Ports frei sind oder eine Einbindung des I²C-Busses nicht gewünscht ist, dann bietet sich dieses Modul zur Erweiterung der Ein- und Ausgabekapazität an.

Das GREETBoard – IO Modul wird einfach auf eins der Portbuchsen gesteckt und Taster/LEDs können sofort als normale Ein- bzw. Ausgangsports angesprochen werden. Eine zusätzliche Kommunikation (Bus oder Protokolle) wird für dieses Modul nicht benötigt.

Das Modul ist vor allem dann interessant, wenn Anwendungsbeispiele mit einer größeren Anzahl von Ein- oder Ausgängen umgesetzt werden, z.B. einer Ampelschaltung.

Schwierigkeitsgrad

Schwierigkeitsgrad-1-1Da nicht jeder ein Löt-Profil oder Programmier-Crack ist, versuche ich die Module in Schwierigkeitsgrade aufzuteilen. Damit kann sich jeder entsprechend seiner persönlichen Fähigkeiten an die  verschiedenen Module und Programme heranwagen.

Auf diesem Modul befinden sich keine schwierigen Bauteile, daher ist es auch für Löt-Anfänger wunderbar lötbar.

Eigenschaften

  • 4 zusätzliche LEDs
  • 4 zusätzliche Taster
  • Direkter Anschluss an die Ports des GREETBoard – ATMega128
  • Externe Spannungsversorgung über das Anschlusskabel
  • Stapelbar, durch standardisierte Platinenbohrlöcher
  • Kleine Abmessung, ca. 50 x 40mm (1/8 Modul)

Modulübersicht

Das GREETBoard – IO Modul besteht im wesentlichen aus Tastern und LEDs. Die hier dargestellte Version 1.0 hat noch vier separate Widerstände, die in der Version 1.1 gegen ein Netzwerkwiderstand ausgetauscht wurde. Ebenso wurde der grade Wanensteckerbuchse gegen eine gewinkelte ausgetauscht, da es sonst Probleme beim stapeln von Modulen geben würde.

GREETBoard IO Modul - Übersicht

GREETBoard IO Modul – Übersicht

Bestückungsplan

GREETBoard IO Modul - Bestückungsplan

GREETBoard IO Modul – Bestückungsplan

Stückliste

StückBauteilWert
4LED1-4Leuchtdiode grün, 5mm
4S1-4Kurzhubtaster
1RR1220 Ohm, Widerstandsnetzwerk
1X110-pol. Wannensteckerbuchse (gewinkelt)

Schaltplan

GREETBoard IO Modul - Schaltplan - Version 1.1

GREETBoard IO Modul – Schaltplan – Version 1.1

Erste Programme

LED blinken lassen

Für dieses Programm muss das Modul am Port B des GREETBoard – ATMega128 angeschlossen werden. Es lässt alle vier LEDs blinken, als wenn sie direkt am Mikrocontroller angeschlossen wären.

#ifndef F_CPU	//Definiere CPU-Takt
  #define F_CPU 16000000
#endif
#include <util/delay.h>
#include <avr/io.h>

int main (void) {
  DDRB |= (1 << DDB4);    // PB4 = Ausgang => LED1
  DDRB |= (1 << DDB5);    // PB5 = Ausgang => LED2
  DDRB |= (1 << DDB6);    // PB6 = Ausgang => LED3
  DDRB |= (1 << DDB7);    // PB7 = Ausgang => LED4
  while(1) {	// Endlosschleife
    PORTB |= (1<<PB4);    // Bit setzen LED1
    PORTB &= ~(1<<PB5);   // Bit löschen LED2
    PORTB |= (1<<PB6);    // Bit setzen LED3
    PORTB &= ~(1<<PB7);   // Bit löschen LED4
    _delay_ms(500);       // halbe Sekunde warten
    PORTB &= ~(1<<PB4);   // Bit löschen LED1
    PORTB |= (1<<PB5);    // Bit setzen LED2
    PORTB &= ~(1<<PB6);   // Bit löschen LED3
    PORTB |= (1<<PB7);    // Bit setzen LED4
    _delay_ms(500);       // halbe Sekunde warten
  }
}

Taster abfragen

Auch bei diesem Beispiel wird das Modul am Port B angeschlossen. Damit können Taster und LEDs programmiert werden, als wenn sie direkt am Mikrocontroller angeschlossen wären. Dies funktioniert natürlich auch an allen anderen Port-Buchsen des GREETBoard – ATMega128.

#ifndef F_CPU	//Definiere CPU-Takt
  #define F_CPU 16000000
#endif 

#include <avr/io.h>

int main(void) {         // Hauptprogramm
  DDRB |=  (1 << DDB4);  // PB4 = Ausgang => LED 1
  DDRB &= ~(1 << DDB0);  // PB0 = Eingang => Taster 1
  PORTB |= _BV(0);       // Pull Up an PB0 aktivieren 

  while(1){              // Hauptschleife    
    if (PINB & (1<<0)){  // Wenn Taste gedrückt...
      PORTB |= _BV(4);   // ...LED1 ein
    }
    else {               // ansonsten...
      PORTB &=~_BV(4);   // ...LED1 aus
    }
  }
}

Steckerbelegung

Bez.BeschreibungPinBelegungSymbol
X1Portverbindung1
2
3
4
5
6
7
8
9
10
S1
S2
S3
S4
LED1
LED2
LED3
LED4
GND
VCC