Hallo zusammen,
Ich bin gerade dabei meinen Arduino zu Programmieren. Er soll folgendes können:
Ausgeben einer 4 Stelligen Nummer auf einem 7 Segment Display, die Eingabe der Nummer soll über den Serial Monitor erfolgen und nach Tastendruck auf entsprechendem Display angezeigt werden.
Bin leider noch neu und nicht mit allem vertraut deshalb benötige ich eure Hilfe!
Der Code den ich verwende sowie eine Darstellung der Verkabelung des Arduinos sind angehängt.
- Den Code habe ich 1:1 auch in Arduino übernommen.
- Die Verkabelung im Link habe ich noch mit einem Taster und 2 zusätzlichen Kabeln ergänzt. Das eine Kabel vom Taster ist mit GND verbunden, das andere mit Pin (TX ->1).
- Board: Arduino Uno
- Port: COM 3
Der Upload des Codes funktioniert fehlerfrei. Nach Eingabe einer Ziffer über den Serial Monitor passiert jedoch garnichts, außer das die Lampe bei TX kurz aufblinkt. Drücken des Tasters fürt ebenfalls zu keiner Ausgabe auf dem Display.
Ich gehe davon aus, dass das Problem bei der Verkabelung liegt, sehe ich das richtig und habt ihr Tipps oder andere Vorschläge wie ich mein Programm bzw. meinen Arduino zum laufen bringen kann?
Bei Fragen gerne jederzeit melden.
Danke schonmal im Voraus!
Verkabelung Arduino
const int digitPins[] = { 2, 3, 4, 5 }; // Pins für die Ziffern (A, B, C, D)
const int segmentPins[] = { 6, 7, 8, 9, 10, 11, 12, 13 }; // Pins für die Segmente (A, B, C, D, E, F, G, DP)
const int buttonPin = 1; // Taster-Pin
int buttonState = 0; // Variable für den Tasterzustand
bool displayEnabled = true; // Variable zur Steuerung der Anzeige
int Status = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
}
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT); // Setze den Tasterpin als Eingang
}
void displayNumber(int number) {
const int numArray[10][7] = {
{ 1, 1, 1, 1, 1, 1, 0 }, // 0
{ 0, 1, 1, 0, 0, 0, 0 }, // 1
{ 1, 1, 0, 1, 1, 0, 1 }, // 2
{ 1, 1, 1, 1, 0, 0, 1 }, // 3
{ 0, 1, 1, 0, 0, 1, 1 }, // 4
{ 1, 0, 1, 1, 0, 1, 1 }, // 5
{ 1, 0, 1, 1, 1, 1, 1 }, // 6
{ 1, 1, 1, 0, 0, 0, 0 }, // 7
{ 1, 1, 1, 1, 1, 1, 1 }, // 8
{ 1, 1, 1, 1, 0, 1, 1 } // 9
};
for (int i = 0; i < 4; i++) {
digitalWrite(digitPins[i], LOW);
for (int j = 0; j < 7; j++) {
digitalWrite(segmentPins[j], numArray[number][j]);
}
delay(1);
digitalWrite(digitPins[i], HIGH);
}
}
void loop() {
if (Serial.available() > 0) {
int value = Serial.parseInt(); //Die zahl die in den seriellen monitor geschrieben wurde, wird gelesen
displayNumber(value);
Status = 0;
}
while (Status = 1) {
buttonState = digitalRead(buttonPin); // Lese den Tasterzustand
if (buttonState = LOW) {
for (int i = 0; i < 4; i++) {
digitalWrite(digitPins[i], HIGH); // Alle Ziffern ausschalten
}
Status = 1;
}
}
}