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
  Hilfe beim skript Devtris 24 1.189 12.03.2018 18:19
Letzter Beitrag: Tommy56
  Hilfe beim Programmieren Klawino 28 1.398 10.03.2018 13:36
Letzter Beitrag: hotsystems
Question Arduino Due nach dem 2. Start Fehlermelddung beim flashen juergen001 2 233 03.03.2018 09:07
Letzter Beitrag: juergen001
  Reset beim Arduino Franz54 6 348 03.03.2018 00:41
Letzter Beitrag: ardu_arne
  Wieder 7 Segment LED daja64 2 235 21.02.2018 22:41
Letzter Beitrag: daja64
  LED riesen 7 Segment Uhr mit Thermometer wolfi_FL 6 348 05.02.2018 21:11
Letzter Beitrag: Tommy56
  Hilfe!!! bei 7-Segment Anzeige Markus2018 9 699 31.01.2018 21:14
Letzter Beitrag: Tommy56
  [Frage] Unterschied zwischen &=~ und ^= beim Bit ändern auf dem Port? avoid 13 901 11.01.2018 00:53
Letzter Beitrag: avoid
  Arduino zu MySQL via Wifi Fehler beim compilieren Franzel007 21 1.077 05.01.2018 20:24
Letzter Beitrag: Tommy56
  SSR (Solid State Relais) mit PID-Regler ansteuern pernschi 10 769 05.01.2018 15:13
Letzter Beitrag: hotsystems

Gehe zu:


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