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
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 9 350 09.10.2017 19:00
Letzter Beitrag: Tommy56
  Adafruit NeoMatrix 8x8 - Einzelne Pixel ansteuern scritch 5 175 05.10.2017 16:02
Letzter Beitrag: Tommy56
  Fortschritte beim 3-flammigen Gasgrill - nun wieder Pause MOE. 17 679 14.09.2017 11:24
Letzter Beitrag: Bitklopfer
  LEDs ansteuern ohne Delay mir MIDI abfrage OnkelPelle 11 864 20.07.2017 22:35
Letzter Beitrag: hotsystems
  I2C rgb LCD ansteuern Sixtus80 18 992 03.07.2017 21:50
Letzter Beitrag: hotsystems
  WS2801 Strip LED einzeln ansteuern michanto 9 5.100 02.07.2017 21:39
Letzter Beitrag: hotsystems
Sad Fehlermeldung beim Hochladen meines Sketches kletterloewe 5 508 14.06.2017 16:08
Letzter Beitrag: hotsystems
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.325 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Arduino hängt beim Upload deranda 14 1.484 20.01.2017 16:14
Letzter Beitrag: renid55
  Led Impuls beim Taster betätigen clemens5555 11 970 17.01.2017 20:00
Letzter Beitrag: renid55

Gehe zu:


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