banner left Boxtec Banner
Platzhalter BoxtecProdukteForumShopKontaktPlaygroundn/aJobs
 

HelvePic32

I2C Alphanumerisches Display (14 Segmente)

Von Adafruit gibt es ein alphanumerisches Display mit 14 Segmenten welches durch einen HT1638 Controller angetrieben wird. Dieser verwendet I2C als Kommunikationsbus.

Um das Display zu betreiben benötigt man zwei Libraries von Adafruit:

  • Adafruit_LED_Backpack
  • Adafrui_GFX

Die I2C Addresse startet bei 0x70 und kann durch drei Lötbrücken bis zu 0x77 verändert werden:

A2 A1 A0 I2C Adresse
offen offen offen 0x70
offen offen geschlossen 0x71
offen geschlossen offen 0x72
offen geschlossen geschlossen 0x73
geschlossen offen offen 0x74
geschlossen offen geschlossen 0x75
geschlossen geschlossen offen 0x76
geschlossen geschlossen geschlossen 0x77

Der Anschluss des Displays an den HelvePic32 erfolgt über den herausgführten I2C Bus:

Der Democode ist mit dem Adruino-Code identisch. Lediglich in der Library Adafruit_LED_Backpack muss PROGMEM entfernt werden, da dieses Konstrukt beim PIC Prozessor nich existiert. Dementsprechend wird diese Memeory auch direkt ausgelesen. In Zeile 244 (je nach Version) muss also folgende Zeile eingefügt werden und die alte Zeile auskommentiert:

//  uint16_t font = pgm_read_word(alphafonttable+a);
  uint16_t font = alphafonttable[a];

Demo Code von Adafruit

// Demo the quad alphanumeric display LED backpack kit
// scrolls through every character, then scrolls Serial
// input onto the display
 
#include 
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
 
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();
 
void setup() {
  Serial.begin(9600);
 
  alpha4.begin(0x70);  // pass in the address
 
  alpha4.writeDigitRaw(3, 0x0);
  alpha4.writeDigitRaw(0, 0xFFFF);
  alpha4.writeDisplay();
  delay(200);
  alpha4.writeDigitRaw(0, 0x0);
  alpha4.writeDigitRaw(1, 0xFFFF);
  alpha4.writeDisplay();
  delay(200);
  alpha4.writeDigitRaw(1, 0x0);
  alpha4.writeDigitRaw(2, 0xFFFF);
  alpha4.writeDisplay();
  delay(200);
  alpha4.writeDigitRaw(2, 0x0);
  alpha4.writeDigitRaw(3, 0xFFFF);
  alpha4.writeDisplay();
  delay(200);
 
  alpha4.clear();
  alpha4.writeDisplay();
 
  // display every character, 
  for (uint8_t i='!'; i<='z'; i++) {
    alpha4.writeDigitAscii(0, i);
    alpha4.writeDigitAscii(1, i+1);
    alpha4.writeDigitAscii(2, i+2);
    alpha4.writeDigitAscii(3, i+3);
    alpha4.writeDisplay();
 
    delay(300);
  }
  Serial.println("Start typing to display!");
}
 
 
char displaybuffer[4] = {' ', ' ', ' ', ' '};
 
void loop() {
  while (! Serial.available()) return;
 
  char c = Serial.read();
  if (! isprint(c)) return; // only printable!
 
  // scroll down display
  displaybuffer[0] = displaybuffer[1];
  displaybuffer[1] = displaybuffer[2];
  displaybuffer[2] = displaybuffer[3];
  displaybuffer[3] = c;
 
  // set every digit to the buffer
  alpha4.writeDigitAscii(0, displaybuffer[0]);
  alpha4.writeDigitAscii(1, displaybuffer[1]);
  alpha4.writeDigitAscii(2, displaybuffer[2]);
  alpha4.writeDigitAscii(3, displaybuffer[3]);
 
  // write it out!
  alpha4.writeDisplay();
  delay(200);
}

HelvePic32

 
helvepic32/bspi2calphanum/start.txt · Last modified: 2015/08/06 09:27 by mathiasw
 
 

zum Seitenanfang

Letzte Aktualisierung: © boxtec internet appliances · the better security products