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
  Led Impuls beim Taster betätigen clemens5555 11 214 17.01.2017 20:00
Letzter Beitrag: renid55
  Arduino 2 schrittmotoren ansteuern super47 10 503 04.01.2017 01:35
Letzter Beitrag: renid55
  Beim Hochladen USB Problem Nils 10 303 29.12.2016 21:05
Letzter Beitrag: renid55
  Fehler beim Hochladen steyr 24 520 16.12.2016 07:52
Letzter Beitrag: hotsystems
  Fehlermedungen beim Kompilieren Franz54 7 287 07.12.2016 14:29
Letzter Beitrag: Pit
  Fehler beim Kompilieren binderj1 5 355 03.10.2016 21:27
Letzter Beitrag: hotsystems
  Ansteuern eines Schrittmotors Uwe1475 28 1.164 03.09.2016 21:03
Letzter Beitrag: Uwe1475
  Fehler beim Speichern von Projekten Manni66 16 810 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Arduino hängt beim Upload deranda 11 578 12.08.2016 21:27
Letzter Beitrag: hotsystems
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 390 06.06.2016 16:07
Letzter Beitrag: Bitklopfer

Gehe zu:


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