Software & Apps

Software und Apps sind aus unserem Alltag nicht mehr wegzudenken; von Musik- und Videobearbeitung, Antiviren-Tools, VPN-Clients bis hin zu Office und gewissen Alternativen - hier dreht sich alles um Software & Apps für Deinen PC.

80.530 Beiträge

Könnt ihr mir bei der Programmierung für meine GFS helfen?

Bitte durchlesen, ich brauche wirklich Hilfe dabei.

Für meine GFS morgen Abend in Informatik ( an der ich ohne Erfolg seit drei Wochen sitze), handelt es sich um den I2C-Baustein, der durch ein Mikrofon, auf dem ICC-Baustein die LEDs zum Leuchten bringen soll. D.h. lautes Geräusch, alle LEDs gehen an; geringes Geräusch, keine bis wenige LEDs gehen an.

Folgendes Problem:

Der Code, den ich in Visual Studio Code realisieren muss, funktioniert nicht und zeigt immer eine Fehlermeldung. Die Deklarationen und Initialisierungen des I2 CS sollen nicht über eine Bibliothek laufen, sondern extern im Programmcode. Der I2C heißt PC F8575.

ich habe verschiedene Programme wie ChatGPT zur Hilfe genutzt, als auch Freunde gefragt, aber niemand konnte mir helfen.

Folgendes muss in meine GFS:

Ich muss den I2C-Baustein beschreiben, wie er die LEDs ansteuert und hierbei sollte ich Auszüge aus dem Datenblatt zeigen und erklären. Dann eine kurze Beschreibung des Codes und noch eine Demonstration der Schaltung machen.

Der Code:

#include <Arduino.h>
#include <Wire.h>

#define MIC_PIN A0
#define THRESHOLD 500

void setup() {
 Serial.begin(9600);

 // I2C starten auf PB_9 (SDA), PB_8 (SCL)
 Wire.begin(PB_9, PB_8); // Nucleo-L152RE: D14 = PB_9 (SDA), D15 = PB_8 (SCL)
 Wire.setClock(100000); // 100 kHz wie in deiner Tabelle
 pinMode(MIC_PIN, INPUT);
}

void loop() {
 int micValue = analogRead(MIC_PIN);
 Serial.println(micValue);
 char daten[1];

 if (micValue > THRESHOLD) {
  daten[0] = 0b00000001; // LED an
 } else {
  daten[0] = 0b00000000; // LED aus
 }

 // Adresse 0x20 (PCF8574) wird wie in der Tabelle verdoppelt: 0x20 << 1 = 0x40
 Wire.beginTransmission(0x20); // 7-Bit-Adresse, nicht verdoppeln hier!
 Wire.write(daten, 1);
 Wire.endTransmission();
  
 delay(100);
}

Zu dem Bild:

Dies ist der Ausschnitt meiner Formelsammlung, so in etwa soll der I2C initialisiert, deklariert, und so soll er Sachen lesen und empfangen.

Ich danke wirklich sehr, wenn mir jemand hilft. Diese Note ist die letzte in meinem Fachabitur mit IT. Bitte.

Vielen Dank!

Bild zum Beitrag
Ask Me Anything: Themenspecials
Im gutefrage Themenspecial beantworten Verbände, Organisationen und Personen des öffentlichen Lebens Deine Fragen zu aktuellen Themen.
AMA: Polizei
42 beantwortete Fragen
AMA: Weltraum & Raumfahrt
172 beantwortete Fragen