ich bin Neuling in der Arduino Welt und bräuchte Hilfe für ein Programm. Anbei ist der Schaltplan für meinen vorliegenden Aufbau. An einem Arduino UNO R3 ist ein MCP23017 und daran ein HD44780 angeschlossen. Wie ist es nun möglich das ich auf meinem Display z.B. "Hello World" schreiben kann? Ohne das MCP23017 würde ich es wahrscheinlich hinbekomme denn über die google Suche findet man genügend Anleitungen. Leider ist bei mir das MCP23017 dazwischen geschaltet und somit habe ich es bis jetzt nur gschafft, dass das Display aufleuchtet.
include <Wire.h>
#include "Adafruit_MCP23017.h"
Adafruit_MCP23017 mcp;
void setup() {
mcp.begin(); // use default address 0
for (int i=1;i<8;i++)
{
mcp.pinMode(i, OUTPUT);
}
}
void loop() {
}
Das Problem ist, man muss so z.B. die Liquid Crystal Library umschreiben oder etwa sähnliches suchen.
Ich habes sowas auch schon mit dem MCP23017 gemacht.
Auf jedenfall so wie Du Dir das vorstellst wird das erstmal nix, es sei denn du willst den Treiber für das Display neu erfinden. Wenn Du ahnung von Librarys und programmieren hast sollte das aber klappen.
Ich schau mal ob ich ein einfaches Beispiel finde.
Schaue Dir die Ansteuerung des LCD vom Arduino aus an
Schließe das Display am MCP23017 an und gib diese Ansteuerung auf diesem aus.
Wenn jemand solche Aufgaben stellt, dann gehe ich mit hoher Wahrscheinlichkeit davon aus, dass der hier und in den anderen einschlägigen Foren mitliest.
Es bringt Dir also überhaupt nichts, wenn Dir jemand anderes die Aufgabe löst. Wir können Dich lediglich bei der Fehlersuche begleiten.
Tommy56:
Wenn jemand solche Aufgaben stellt, dann gehe ich mit hoher Wahrscheinlichkeit davon aus, dass der hier und in den anderen einschlägigen Foren mitliest.
Es ist für die Arbeit am Institut. Ich bin da HiWi. Also keine Aufgabe die bewertet wird. Wir haben einen Temperatursensor mit angeschlossen und wollen im Endeffekt auf dem Display die gemessene Temperatur ablesen. Zusammengebaut hat es der Elektriker vom Institut.
Ich hab mal etwas probiert, und zwar habe ich in der originalen LiquidCrystal Library alle "Pinmode", "digitalWrite"durch MCP.pinMode und MCP.Digitalwrite ersetzt.. das war eine 5 Minuten Sache.
Im Prinzip kann man die wie die Originale LiquidCrystal benutzen.
Anstatt der Arduino Pins benutzt man die MCP Pinangaben:
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Da ich es nicht testen kann, keine Ahnung.. das war nur die Quick&Dirty Idee.
Fehler keine Gewähr EDIT: Datei neu geuppt, war nen Fehler für Globale MCP Variable drin.
Die gängigen I2C-LCD-Adapter basieren auf dem PCF8574. Entsprechend exzellent ist die Unterstützung durch Libraries. Falls du irgendeine Chance hast auf einen solchen Adapter zu wechseln, dann mache das.