kk logo

Mit dem "open smart rich shield", kannst du für circa 6 Euro eine Menge über den Arduino und das Programmieren mit Ardublock lernen. Dieses shield bietet eine 4x Siebensegment Anzeige, zwei Taster, 4 LEDs, einem Poti, DHT Sensor und vieles andere. Mit so einem Board musst du dich nicht um das Stecken von Hardware auf einem Breadbord kümmern, sondern kannst direkt mit dem programmieren loslegen. 

 Spezifikationen des open smart rich shield

  • Geeignet für Uno, Mega, Leonardo und andere 5-V-Arduinos, die das Uno R3-Pinlayout verwenden
  • Verfügbare Hardware mit entsprechender PIN Belegung:
    • IR-Empfänger: D2
    • Summer: D3
    • LED4 (rot): D4
    • LED3 (grün): D5
    • LED2 (blau): D6
    • LED1 (gelb): D7
    • Druckknopf K2 auf D8
    • Druckknopf K1 auf D9
    • TM1637 Segmentanzeige mit 4 Zeichen und Dezimalstellen: D10 CLK, D11 DIN
    • DHT11-Sensor: D12
    • Potentiometer: A0
    • NTC (Temperatursensor): A1
    • LDR (Lichtsensor): A2
    • Spannungssensor (Spannungsteiler): A3
    • 24C02 EEPROM: I2C-Pins (Standard-SCK- und SDA-Pins)

4x7 LED Segmentanzeige programmieren: 

Mit der LED Anzeige des "open smart rich shield" kannst du einfache Zahlen aber auch Variablen und Kommastellen anzeigen. Um das Display zu programmieren benötigst du lediglich die "TM1637.h" und die "Arduino.H" Bibliothek für den Arduino. Die ersten 5 Code Funktionen werden über "Code im Globalen Bereich einfügen" programmiert. Über die Funktion "setBrightness" wird die Helligkeit der Anzeige bestimmt. 

Einfache Zahlen werden mit der Funktion "showNumerDec" dargestellt.

- Anzuzeigender Wert: display.showNumberDec(99, true);

- Bestimmt ob die leeren stellen mit 0 gefüllt werden: display.showNumberDec(99, true/false);

- In einer extra Klammer wird eine Variable angezeigt: display.showNumberDec((var), true);

Arduino open smart rich shield tm1637 display 4

Um jede Anzeige Extra darzustellen wird die Funktion data[0] = display.encodeDigit verwendet.

- Erste Zahl ist die Stelle, zweite Zahl ist der Wert: data[0] = display.encodeDigit(7);

- Um eine Variable anzuzeigen, den Name in die Klammer schreiben: data[0] = display.encodeDigit(var);

- Das unit8 und set Segments nicht vergessen. 

Arduino open smart rich shield tm1637 display 2

Um die Helligkeit der Anzeige zu ändern oder ganze auszuschalten wird die Funktion: display.setBrightness(7, true); verwendet

- Die Zahl gibt die Helligkeit von 0-7 an display.setBrightness(7, true);

- True und false geben an ob das Display aus oder an ist: display.setBrightness(7, true/false);

- Im Bespiele wird die Anzeige für eine Sekunde Ein- und dann für eine Sekunde ausgeschaltet.

Arduino open smart rich shield tm1637 display 6

Code im globalen Bereich einfügen: 

#include <Arduino.h>

#include <TM1637Display.h>

#define CLK 10

#define DIO 11

TM1637Display display(CLK, DIO);

Code im Setup einfügen:

display.setBrightness(5, true);

Code im Loop einfügen:

display.showNumberDecEx(34, (0x80 >> 3), true);

display.showNumberDec(99, true);

display.showNumberDec((var), false);

 uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };

data[0] = display.encodeDigit(var1);

data[1] = display.encodeDigit(var2);

data[2] = display.encodeDigit(var3);

data[3] = display.encodeDigit(var4);

display.setSegments(data);

 data[0] = display.encodeDigit(0);

display.showNumberDecEx((variable), (0x80 >> punkt), true);  (Varaible Punkt = Punkt auf dem Display) 

 

Hier noch einige Beispiele für showNummerDec:

display.showNumberDec(0, false); // Expect: ___0
display.showNumberDec(0, true); // Expect: 0000
display.showNumberDec(1, false); // Expect: ___1
display.showNumberDec(1, true); // Expect: 0001
display.showNumberDec(301, false); // Expect: _301
display.showNumberDec(301, true); // Expect: 0301
display.showNumberDec(14, false, 2, 1); // Expect: _14_
display.showNumberDec(4, true, 2, 2); // Expect: __04
display.showNumberDec(-1, false); // Expect: __-1
display.showNumberDec(-12); // Expect: _-12
display.showNumberDec(-999); // Expect: -999
display.showNumberDec(-5, false, 3, 0); // Expect: _-5_
display.showNumberHexEx(0xf1af); // Expect: f1Af
display.showNumberHexEx(0x2c); // Expect: __2C
display.showNumberHexEx(0xd1, 0, true); // Expect: 00d1
display.showNumberHexEx(0xd1, 0, true, 2); // Expect: d1__

 

IR LED als Empfänger programmieren: 

 

Die Fernbedienung sollte auf den IR Empfänger gerichtet sein, damit das Signal auch ankommt.   

Arduino rich shield IR LED code 1

 

Die irremote Bibliothek muss auf Version 2.6.0 stehen, sonst funktioniert das auslesen nicht. 

Arduino rich shield IR LED code 2

Code im globalen Bereich einfügen: 

#include <IRremote.h>

#define RECEIVER_PIN 2

IRrecv receiver(RECEIVER_PIN);

decode_results results;

Code im Setup einfügen:

receiver.enableIRIn();

receiver.enableIRIn();

 Code im Loop einfügen:

{ if (receiver.decode(&results)) { Serial.println(results.value, HEX); receiver.resume(); } }

test = (long)results.value;

 

Nach dem drücken eines Knopfes sollten diese Zeile im Serial Monitor erscheinen. 

Arduino rich shield IR LED code 3

Hier der Code zum auslesen der HEX Daten.

#include <IRremote.h>

const int RECV_PIN = 2;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup(){

  Serial.begin(9600);

  irrecv.enableIRIn();

}

void loop(){

  if (irrecv.decode(&results)){

  Serial.print(" HEX: ");

  Serial.print(results.value, HEX);

  Serial.print(" BIN: ");

  Serial.println(results.value, BIN);

  irrecv.resume();

  }

}

Ronnie

schwäbischer tüftler und bastler, kraftsportler, ADHS power, 43 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee

...

Denn du bist ein Unikat, einzig in deiner Art
Wir alle ecken an so wie in ein Quadrat
Du bist ein Unikat, du bist so wie du bist
Egal, was sie labern, wir geben kein'n Fick.

SDP, Unikat