- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 15

Thema: Controler für I2C befehl

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Technisch kein besonders großes Problem. Wenn du allerdings ohne Vorkenntnisse da dran gehst, wird es dich einige Mühe kosten, das Ding zu bauen.
    Wie viele verschiedene Befehlssequenzen brauchst du denn? Wenn es nur einige, feststehende Sequenzen sind, ist es vielleicht recht einfach.
    Der Einfachheit halber könntest du einen Arduino Nano nehmen. Mit einem DIP-Schalterblock kannst du die entsprechende Anzahl Einstellvarianten ermöglichen.
    Mit welcher Spannung arbeitet die Elektronik auf diesen Modulatoren? Der Arduino hat 5 Volt. Wenn die mit mehr oder weniger arbeiten, musst du das noch anpassen.
    Wenn der µC gestartet wird, liest er die DIP-Schalter aus, und sendet per I2C die gewünschte Sequenz.
    Das Programm musst du aber irgendwie selbst schreiben - in Anlehnung an den Link von Holomino.

  2. #2
    Gesperrt Öfters hier
    Registriert seit
    15.10.2019
    Beiträge
    7
    Hallo und Danke,
    Der uC muß nach Anlegen der Spannung, also Initialisierung, eine einzige Sequenz an den Mod-chip senden. die besteht aus paar Teilen (Blöcken) für Frequenz, Audio-Träger, Testsignal, Mod.-Tiefe u.dgl.
    Mir ist es egal, ob ich alle Parameter, die in dieser Sequenz enthalten sein müssen, vorher am PC festlege (und ins EEPROM schreibe ??) oder Teile (Blöcke) davon per DIP nachträglich modifizieren kann.
    Auch die Versorgung von üC und Modulator mit möglicherweise verschiedenen Spannungen und daraus resultierende Pegelanpassungen sind (ich bin Elektroniker) kein Thema.
    Mein Problem ist allein das Erstellen des Programms. Ich bin keine 17 mehr und wollte mit eurer Hilfe vermeiden, noch mal Programmiersprache usw. wegen dieses Projekts lernen zu müssen.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Ein bisschen Getüftel wird es schon.
    Der Arduino Nano lässt sich aber sehr einfach programmieren (Entwicklungsumgebung im PC installieren, Nano mit USB-Kabel anschließen - das ist eingetlich schon alles).
    Für dein Programm dürften die wesentlichen Teile die Einbindung der Wire-Bibliothek

    #include <Wire.h>

    und das Senden der Sequenzen

    Wire.beginTransmission(MOD_ADDRESS);
    Wire.write(0x88 )
    Wire.write(0x40 | mod_sound[soundIdx]);
    Wire.write(fm);
    Wire.write(fl);
    Wire.endTransmission();

    sein. Die Werte hier sind im Programm mit Hilfe der Tasten und des LCD eingestellt. Du kannst sie natürlich als feste Werte in den Klammern hinterlegen (so wie der Wert 0x88 in der zweiten Zeile).
    MOD_ADRSESS solltest du duch so etwas wie 0xCA (Adresse des Moduls aus dem Beispiel) ersetzen können. Die Definition
    #define MOD_ADDRESS (0xCA >> 1)

    verschiebt den Wert um ein Bit nach rechts - was das soll, verstehe ich allerdings nicht.
    In der Setup-Sektion ist offenbar noch ein

    Wire.begin();

    nötig.
    Jetzt heißt es für dich wohl: Frisch ans Werk.

  4. #4
    HaWe
    Gast
    Zitat Zitat von Gnom67 Beitrag anzeigen
    verschiebt den Wert um ein Bit nach rechts - was das soll, verstehe ich allerdings nicht.
    Arduino verwendet zur Adressierung per Wire die 7-bit I2C dev Adresse (0...127), 0xCA (dec 202) ist eine 8-bit-Adresse (least significant bit 1/0 für r/w).
    Durch >> 1 wird es rausgekickt (Division durch 2) und man erhält aus der 8-bit die "reine" 7-bit I2C addr
    202 >> 1 = 101 (hex 0x65)

  5. #5
    Gesperrt Öfters hier
    Registriert seit
    15.10.2019
    Beiträge
    7
    o.k. ! etwas "Getüftel" is bei allen solchen Projekten normal.
    Also paar dieser Teile:

    https://www.banggood.com/de/ATmega32...r_warehouse=CN

    kaufen, "arduino-1.8.10-windows.exe" installieren, usb-Verbindung und los gehts: " Wire.beginTransmission(0xCA); " usw. . . . ??

    Mein Modulator-chip MC44353 hat übrigens lt. Datenblatt auch die Adresse CA(hex), der wird doch nicht etwa kompatibel sein mit dem im Link von Holomino ??

  6. #6
    Gesperrt Öfters hier
    Registriert seit
    15.10.2019
    Beiträge
    7
    Hi,
    also ganz ohne eure externe Hilfe wirds doch nix. Mein Modulator chip mc44353 ist zwar sehr ähnlich dem MBS74T1AEF im Link von Holomino, alle bytes haben die selbe Bezeichnung und Funktion, aber es gibt doch paar Unterschiede.
    Die keyPad- und LCD- funktionen wie bei "Cornelius´ projekt brauch ich nicht, die umständliche umrechnung der PAL-Kanal-nummern in die eigentliche frequenz auch nich, mit meinem chip reicht es, die gewünschte Video-Frequenz als Vielfaches von 0,25 MHz in die beiden bytes FL und FM zu schreiben, die begrenzung der Kanäle " if ((channel < 21) || (channel > 69)) channel = 21;
    innerhalb 21 bis 69 is genau so überflüssig.
    Hab jetzt keine Ahnung wie ich aus dem Quellcode aus dem Link einen für mich machen kann??

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.12.2018
    Beiträge
    459
    Na, jetzt musst du dich schon mal selbst dranmachen...
    Aus deinem Datenblatt kannst du doch die gewünschten Bits leicht entnehmen. Da ist ebenso eine Tabelle wie im Link von Holomino.
    Füllst du die vier Bytes mit deinen gewünschten Werten aus, erhältst du die Binärwerte, die du senden musst. kannst du in hex umrechnen und als 0x?? angeben oder als binär müsste auch gehen (B????????)
    Beim Code kannst du den ganzen Schnickschnack weglassen. Du brauchst nur die Importe, die Rahmenstruktur, die Initialisierung des I2C und die Sendebefehle für deine Bytes. Nach dem Einschalten wird er einen Moment warten müssen, bis der Modulator empfangsbereit ist (wie lange, musst du ausprobieren). Dann die Adresse senden. Danach deine vier Bytes. Dann kommt noch das beenden der Sendesequenz. Dann könntest du den µC in den Tiefschlaf schicken, denn er hat seinen Dienst ja getan. Beim Reset/Einschalten sendet er die Sequenz und schläft dann...
    Also, so schwer erscheint mir das nicht. Insgesamt müsste das ungefähr so aussehen.

    #include <Wire.h>
    #define MOD_ADDRESS (0xCA >> 1)

    void setup() {

    Wire.begin();

    }

    void loop() {

    delay(100); // 100 ms warten

    Wire.beginTransmission(MOD_ADDRESS);
    Wire.write(0x??);
    Wire.write(0x??);
    Wire.write(0x??);
    Wire.write(0x??);
    Wire.endTransmission();

    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_enable();
    sleep_mode();
    }

Ähnliche Themen

  1. RGB Controler
    Von The Man im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 11.10.2008, 18:46
  2. 3 Achsen CNC Controler
    Von unleashed im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 25.07.2008, 13:24
  3. asuro controler
    Von baschi-1,3 im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 17.04.2006, 13:21
  4. RN-Controler und Schrittmotor
    Von Blackbumpkin im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 3
    Letzter Beitrag: 12.12.2005, 10:51
  5. Frage zum µcontroler
    Von im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 10
    Letzter Beitrag: 25.08.2004, 19:54

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests