PCA9685PW an Arduino Nano

Hallo zusammen, ich suche eine Lösung, um ausgewählte Parameter aus einem Code auszulesen, über den Serial Monitor, diese sollen dann angepasst, wieder in den Code an die gleichen Stellen zurückgegeben werden.
Die Ausgabe funktioniert schon, jedoch weiß ich nicht wie editiert werden kann und die Rückgabe an die gleiche Stelle erfolgen kann.
Das ist der Code:

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);
//Adafruit_PWMServoDriver pwm2 = Adafruit_PWMServoDriver(0x41);

int flicker_speed1[32];
int flicker_duration1[32];
int brightness1[32];

int flicker_speed2[32];
int flicker_duration2[32];
int brightness2[32];

void setup() {
  Serial.begin(9600);
  Serial.println("32 channel PWM test!");
  pwm1.begin();
  //  pwm2.begin();
  pwm1.setPWMFreq(1600);
  //  pwm2.setPWMFreq(1600);
  for (int i = 0; i < 32; i++) {
    brightness1[i] = random(0, 4096);
    flicker_speed1[i] = random(1, 10);
    flicker_duration1[i] = random(1, 10);
    brightness2[i] = random(0, 4096);
    flicker_speed2[i] = random(1, 10);
    flicker_duration2[i] = random(1, 5);
  }
}

void loop() {
  for (uint16_t i = 0; i < 4096; i += 8) {
    for (uint8_t pwm_num = 0; pwm_num < 32; pwm_num++) {
      int pwm_channel = pwm_num % 16;
      if (pwm_num < 16) {
        pwm1.setPWM(pwm_channel, 0, brightness1[pwm_num]);
        Serial.print("Module 1, Channel ");
      } else {
        //        pwm2.setPWM(pwm_channel, 0, brightness2[pwm_num - 16]);
        Serial.print("Module 2, Channel ");
      }
      Serial.print(pwm_num);
      Serial.print(": ");
      Serial.print(pwm_channel);
      Serial.print(": ");
      if (pwm_num < 16) {
        Serial.print(brightness1[pwm_num]);
        Serial.print(": ");
        Serial.print(flicker_speed1[pwm_num]);
        Serial.print(": ");
        Serial.println(flicker_duration1[pwm_num]);
        delay(flicker_speed1[pwm_num]);
      } else {
        Serial.print(brightness2[pwm_num - 16]);
        Serial.print(": ");
        Serial.print(flicker_speed2[pwm_num - 16]);
        Serial.print(": ");
        Serial.println(flicker_duration2[pwm_num - 16]);
        delay(flicker_speed2[pwm_num - 16]);
      }
    }
    delay(flicker_duration1[0]);
  }
}

void serialEvent() {
  while (Serial.available()) {
    int incomingValue = Serial.read();
    Serial.print("Received: ");
    Serial.println(incomingValue);
  }
}

Du kannst den Code nicht zur Laufzeit ändern.
Da musst Du Dir ein anderes Verfahren überlegen.
Du kannst höchstens Variablen ändern, die der Code auswertet.

Gruß Tommy

Okay ich habe mich falsch ausgedrückt. Die Variablen möchte ich nach dem Testen komfortabel anpassen, in einer Art Tabelle (Array heißt das glaub ich). Und um nicht im Code zu suchen, würde ich dann in der Tabelle editieren. Der Code könnte zur Rückgabe der geänderten Variablen anhalten.
Ich kann aber mangels Kenntnisse dies nicht programmieren. Wäre schön, wenn das jemand unterstützen könnte.
Gruß Peter

Das kann man lernen. Ansonsten gibt es für Auftragsarbeiten die Kategorie Jobs and Paid Consultancy category (englisch).

Hier gibt es Hilfe zur Selbsthilfe.

Gruß Tommy

Deine Beschreibung ist schwammig.
Beschreibe mal was der Anwender eingeben soll und was mit den Daten geschehen soll.
Schritt für Schritt.

Wenn du das beschrieben hast, und zB. von der Seriellen Schnittstelle Werte einlesen möchtest, dann schlage ich vor, du liest anschließend dieses Tutorial:

1 Like

Okay danke erstmal, aber es ist nur Hobby nicht Geschäftlich.

Dann ist Lernen angesagt.

Gruß Tommy

1 Like

Danke erstmal.

Fortsetzung folgt:
Ich habe einen Code in Bearbeitung der die Funktionen konkreter anspricht und beschreibt.
Es wird dann so sein, dass der "Urcode", mit den Funktionen:
1.) Stop angehalten wird.
2.) Funktion, der Urcode wird bzgl. der Parameter: Kanal 1 + 2; -Flicker- Speed 1+ 2; Flicker-Brightness 1+2; Flicker-duration1+2, ausgelesen.
3.) Der Urcode wird in ein csv. Format gewandelt und in eine Exceltabelle geschrieben.
4.) Der editierte Urcode wir in einen neuen Arduino IDE-Code gewandelt und zurückgeschrieben.
Wer dazu Ideen hat oder Verbesserungen vielleicht sogar CODE- Vorschläge bitte melden.

EEPROM oder FERAM

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.