INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
8 LED , 7-Segment-Elemente einzeln ansteuern beim tm1638 und die Buttons
15.01.2016, 22:37 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2016 23:30 von arduinofan.)
Beitrag #1
8 LED , 7-Segment-Elemente einzeln ansteuern beim tm1638 und die Buttons
Ansteuerung ohne die Librarie:
7-Segment, Led und die Buttons

Hier kann man alle Segmente einer Anzeige einzeln ansteuern.

Das ist die erste 7-Segment-Anzeige (links):
shiftOut(data, clock, LSBFIRST, 0xc0); // 0xce ist die 8. Anzeige rechts.
Hier kommt der Wert rein 0-255 :
shiftOut(data, clock, LSBFIRST, 0x01);

LED 1 - 8 :
shiftOut(data, clock, LSBFIRST, 0xc1); // 0xc3, 0xc5 usw.
shiftOut(data, clock, LSBFIRST, 0x01);


Code:
const int strobe = 24;
const int clock = 23;
const int data = 22;

void sendCommand(uint8_t value)
{
  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, value);
  digitalWrite(strobe, HIGH);
}

void reset()
{
  sendCommand(0x40);
  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc0);  
  for(uint8_t i = 0; i < 16; i++)
  {
    shiftOut(data, clock, LSBFIRST, 0x00);
  }
  digitalWrite(strobe, HIGH);
}

void setup()
{
  pinMode(strobe, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);

  sendCommand(0x8f);
  reset();
}

void loop()
{
  sendCommand(0x44);

// acht 7-Segmente
  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc0);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc2);
  shiftOut(data, clock, LSBFIRST, 0x02);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc4);
  shiftOut(data, clock, LSBFIRST, 0x04);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc6);
  shiftOut(data, clock, LSBFIRST, 0x08);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc8);
  shiftOut(data, clock, LSBFIRST, 0x10);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xca);
  shiftOut(data, clock, LSBFIRST, 0x20);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xcc);
  shiftOut(data, clock, LSBFIRST, 0x40);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xce);
  shiftOut(data, clock, LSBFIRST, 0x80);
  digitalWrite(strobe, HIGH);

// acht LED

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc1);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc3);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc5);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc7);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xc9);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xcb);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xcd);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0xcf);
  shiftOut(data, clock, LSBFIRST, 0x01);
  digitalWrite(strobe, HIGH);

}

Hier die Abfrage der Buttons:
Code:
const int strobe = 24;
const int clock = 23;
const int data = 22;

uint8_t buttons;

void setup()
{
  pinMode(strobe, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);

  Serial.begin(9600);
}

uint8_t readButtons(void)
{
  uint8_t buttons = 0;
  digitalWrite(strobe, LOW);
  shiftOut(data, clock, LSBFIRST, 0x42);

  pinMode(data, INPUT);

  for (uint8_t i = 0; i < 4; i++)
  {
    uint8_t v = shiftIn(data, clock, LSBFIRST) << i;
    buttons |= v;
  }

  pinMode(data, OUTPUT);
  digitalWrite(strobe, HIGH);
  return buttons;
}

void loop()
{
  buttons = readButtons();
  Serial.println(buttons);

  delay(200);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Neuling Fehler beim Kompilieren guenni71 6 255 26.11.2017 16:48
Letzter Beitrag: hotsystems
  Fehlermeldung beim Kompilieren Arduino/Genuino Uno Otto 12 558 21.11.2017 20:30
Letzter Beitrag: Tommy56
Question Problem beim seriellen Einlesen von RFID-Reader Bezel 5 309 05.11.2017 22:37
Letzter Beitrag: Tommy56
  Ablaufstruktur beim arbeiten mit Sensorwerten? Jan_OL 22 1.127 02.11.2017 00:08
Letzter Beitrag: georg01
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 10 902 30.10.2017 19:33
Letzter Beitrag: Bino87
  Adafruit NeoMatrix 8x8 - Einzelne Pixel ansteuern scritch 5 357 05.10.2017 16:02
Letzter Beitrag: Tommy56
  Fortschritte beim 3-flammigen Gasgrill - nun wieder Pause MOE. 17 943 14.09.2017 11:24
Letzter Beitrag: Bitklopfer
  LEDs ansteuern ohne Delay mir MIDI abfrage OnkelPelle 11 1.069 20.07.2017 22:35
Letzter Beitrag: hotsystems
  I2C rgb LCD ansteuern Sixtus80 18 1.329 03.07.2017 21:50
Letzter Beitrag: hotsystems
  WS2801 Strip LED einzeln ansteuern michanto 9 5.739 02.07.2017 21:39
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste