Go Down

Topic: Frage zum PCA 9685 12-bit PWMshield (Read 2143 times) previous topic - next topic

1to8modelmaker

So geändert ist es jetzt aber irgendwie ist da noch der Wurm drin.
Code: [Select]

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

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

int umschalterPin = 2; // umschalten zwischen a und b an Pin 2 angeschlossen
int umschalten = 0;

#define MIN_PULSE_WIDTH       650
#define MAX_PULSE_WIDTH       2250 //ueber diese Variable den Weg anpassen
#define DEFAULT_PULSE_WIDTH   1500
#define FREQUENCY             50

uint16_t ch1;
uint16_t ch2;
uint16_t ch3;
uint16_t ch4;
uint16_t ch5;
uint16_t ch6;
uint16_t ch7;
uint16_t ch8;
uint16_t ch9;
uint16_t ch10;
uint16_t ch11;  // Modell 1
uint16_t ch12;
uint16_t ch13;
uint16_t ch14;
uint16_t ch15;
uint16_t ch16;
uint16_t ch17;
uint16_t ch18;
uint16_t ch19;
uint16_t ch20;
uint16_t ch21;
uint16_t ch22;  // Modell 2

const int LED1 = 13; //LEDkennung zwischen a und b

const byte numch1=0;
const byte numch2=1;
const byte numch3=2;
const byte numch4=3;
const byte numch5=4;
const byte numch6=5;
const byte numch7=6;
const byte numch8=7;
const byte numch9=8;
const byte numch10=9;
const byte numch11=10;
const byte numch12=0;
const byte numch13=1;
const byte numch14=2;
const byte numch15=3;
const byte numch16=4;
const byte numch17=5;
const byte numch18=6;
const byte numch19=7;
const byte numch20=8;
const byte numch21=9;
const byte numch22=10;

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(12,INPUT);
  pinMode(11,INPUT);
  pinMode(10,INPUT);
  pinMode(9,INPUT);
  pinMode(8,INPUT);
  pinMode(7,INPUT);
  pinMode(6,INPUT);
  pinMode(5,INPUT);
  pinMode(4,INPUT);
  pinMode(3,INPUT);
  pinMode(22,INPUT);
}
void loop() {
  
int pulseWidth(int angle);
}
    pwm1.setPWM(numch0, 1, pulseWidth(ch1));
    pwm1.setPWM(numch1, 1, pulseWidth(ch2));
    pwm1.setPWM(numch2, 1, pulseWidth(ch3));
    pwm1.setPWM(numch3  1, pulseWidth(ch4));
    pwm1.setPWM(numch4, 1, pulseWidth(ch5));
    pwm1.setPWM(numch5, 1, pulseWidth(ch6));
    pwm1.setPWM(numch6, 1, pulseWidth(ch7));
    pwm1.setPWM(numch7, 1, pulseWidth(ch8));
    pwm1.setPWM(numch8, 1, pulseWidth(ch9));
    pwm1.setPWM(numch9, 1, pulseWidth(ch10));
    pwm1.setPWM(numch10, 1, pulseWidth(ch11));
    pwm2.setPWM(numch11, 1, pulseWidth(ch12));
    pwm2.setPWM(numch12, 1, pulseWidth(ch13));
    pwm2.setPWM(numch13, 1, pulseWidth(ch14));
    pwm2.setPWM(numch14, 1, pulseWidth(ch15));
    pwm2.setPWM(numch15, 1, pulseWidth(ch16));
    pwm2.setPWM(numch16, 1, pulseWidth(ch17));
    pwm2.setPWM(numch17, 1, pulseWidth(ch18));
    pwm2.setPWM(numch18, 1, pulseWidth(ch19));
    pwm2.setPWM(numch19, 1, pulseWidth(ch20));
    pwm2.setPWM(numch20, 1, pulseWidth(ch21));
    pwm2.setPWM(numch21, 1, pulseWidth(ch22));
}



Und zwar dieser hier:
'pwm1' does not name a type
'pwm2' does not name a type

agmue

Falsche Klammerung, die möchten in Pärchen auftreten.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

1to8modelmaker

Wo habe ich welche Klammer vergessen ?

agmue

Code: [Select]
void loop() {
 
int pulseWidth(int angle);
}
    pwm1.setPWM(numch0, 1, pulseWidth(ch1));
    pwm1.setPWM(numch1, 1, pulseWidth(ch2));
    pwm1.setPWM(numch2, 1, pulseWidth(ch3));
    pwm1.setPWM(numch3  1, pulseWidth(ch4));
    pwm1.setPWM(numch4, 1, pulseWidth(ch5));
    pwm1.setPWM(numch5, 1, pulseWidth(ch6));
    pwm1.setPWM(numch6, 1, pulseWidth(ch7));
    pwm1.setPWM(numch7, 1, pulseWidth(ch8));
    pwm1.setPWM(numch8, 1, pulseWidth(ch9));
    pwm1.setPWM(numch9, 1, pulseWidth(ch10));
    pwm1.setPWM(numch10, 1, pulseWidth(ch11));
    pwm2.setPWM(numch11, 1, pulseWidth(ch12));
    pwm2.setPWM(numch12, 1, pulseWidth(ch13));
    pwm2.setPWM(numch13, 1, pulseWidth(ch14));
    pwm2.setPWM(numch14, 1, pulseWidth(ch15));
    pwm2.setPWM(numch15, 1, pulseWidth(ch16));
    pwm2.setPWM(numch16, 1, pulseWidth(ch17));
    pwm2.setPWM(numch17, 1, pulseWidth(ch18));
    pwm2.setPWM(numch18, 1, pulseWidth(ch19));
    pwm2.setPWM(numch19, 1, pulseWidth(ch20));
    pwm2.setPWM(numch20, 1, pulseWidth(ch21));
    pwm2.setPWM(numch21, 1, pulseWidth(ch22));
}

Eine öffnende, zwei schließende.

Notepad++ zeigt mir sowas an.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

combie

#34
Dec 03, 2018, 12:08 pm Last Edit: Dec 03, 2018, 12:09 pm by combie
Wo habe ich welche Klammer vergessen ?
Manchmal, ist dann auch noch ein Semikolon zu viel....
:o  :o  :o  :o


Tipp:
Etwas Sorgfalt und Disziplin wirkt beim programmieren Wunder.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

agmue

Manchmal, ist dann auch noch ein Semikolon zu viel....
:o  :o  :o  :o
Ich hoffe, Du willst ihn nicht zu rekursiver Programmierung überreden ;)

Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

combie

Ich hoffe, Du willst ihn nicht zu rekursiver Programmierung überreden ;)


Wenn, dann erstmal zu Array Orientierter Programmierung.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

agmue

Wenn, dann erstmal zu Array Orientierter Programmierung.

Ich sehe sogar Möglichkeiten für OOP, aber AOP kommt vorher. Dürfte aber noch ein langer, langer Weg werden ;D
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

1to8modelmaker

#38
Dec 03, 2018, 02:37 pm Last Edit: Dec 03, 2018, 02:40 pm by 1to8modelmaker
Der selbe Fehler ist noch da.
Code: [Select]

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

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

int umschalterPin = 2; // umschalten zwischen a und b an Pin 2 angeschlossen
int umschalten = 0;

const int LED1 = 13; //LEDkennung zwischen a und b

#define MIN_PULSE_WIDTH       650
#define MAX_PULSE_WIDTH       2250 //ueber diese Variable den Weg anpassen
#define DEFAULT_PULSE_WIDTH   1500
#define FREQUENCY             50

uint16_t ch1;
uint16_t ch2;
uint16_t ch3;
uint16_t ch4;
uint16_t ch5;
uint16_t ch6;
uint16_t ch7;
uint16_t ch8;
uint16_t ch9;
uint16_t ch10;
uint16_t ch11;  // Modell 1
uint16_t ch12;
uint16_t ch13;
uint16_t ch14;
uint16_t ch15;
uint16_t ch16;
uint16_t ch17;
uint16_t ch18;
uint16_t ch19;
uint16_t ch20;
uint16_t ch21;
uint16_t ch22;  // Modell 2

const byte numch1 = 1;
const byte numch2 = 2;
const byte numch3 = 3;
const byte numch4 = 4;
const byte numch5 = 5;
const byte numch6 = 6;
const byte numch7 = 7;
const byte numch8 = 8;
const byte numch9 = 9;
const byte numch10 = 10;
const byte numch11 = 11;
const byte numch12 = 12;
const byte numch13 = 13;
const byte numch14 = 14;
const byte numch15 = 15;
const byte numch16 = 16;
const byte numch17 = 17;
const byte numch18 = 18;
const byte numch19 = 19;
const byte numch20 = 20;
const byte numch21 = 21;
const byte numch22 = 22;

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(12, INPUT);
  pinMode(11, INPUT);
  pinMode(10, INPUT);
  pinMode(9, INPUT);
  pinMode(8, INPUT);
  pinMode(7, INPUT);
  pinMode(6, INPUT);
  pinMode(5, INPUT);
  pinMode(4, INPUT);
  pinMode(3, INPUT);
  pinMode(22, INPUT);
}
void loop() {

int pulseWidth(int angle);
}

pwm1.setPWM(numch1, 1, pulseWidth(ch1));
pwm1.setPWM(numch2, 1, pulseWidth(ch2));
pwm1.setPWM(numch3, 1, pulseWidth(ch3));
pwm1.setPWM(numch4  1, pulseWidth(ch4));
pwm1.setPWM(numch5, 1, pulseWidth(ch5));
pwm1.setPWM(numch6, 1, pulseWidth(ch6));
pwm1.setPWM(numch7, 1, pulseWidth(ch7));
pwm1.setPWM(numch8, 1, pulseWidth(ch8));
pwm1.setPWM(numch9, 1, pulseWidth(ch9));
pwm1.setPWM(numch10, 1, pulseWidth(ch10));
pwm1.setPWM(numch11, 1, pulseWidth(ch11));
pwm2.setPWM(numch12, 1, pulseWidth(ch12));
pwm2.setPWM(numch13, 1, pulseWidth(ch13));
pwm2.setPWM(numch14, 1, pulseWidth(ch14));
pwm2.setPWM(numch15, 1, pulseWidth(ch15));
pwm2.setPWM(numch16, 1, pulseWidth(ch16));
pwm2.setPWM(numch17, 1, pulseWidth(ch17));
pwm2.setPWM(numch18, 1, pulseWidth(ch18));
pwm2.setPWM(numch19, 1, pulseWidth(ch19));
pwm2.setPWM(numch20, 1, pulseWidth(ch20));
pwm2.setPWM(numch21, 1, pulseWidth(ch21));
pwm2.setPWM(numch22, 1, pulseWidth(ch22));
}




agmue

Der selbe Fehler ist noch da.
Dann beseitige ihn!

Leider fällt mir nichts Sinnvolleres ein :(
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

1to8modelmaker

Hab nochmal dank für Deine Hilfe Agmue.

postmaster-ino

Hi

STRG+T in der IDE rückt Dir den Code je nach Klammer-Tiefe entsprechend ein.
Code: [Select]
void loop() {
int pulseWidth(int angle);
}
pwm1.setPWM(numch1, 1, pulseWidth(ch1));

Hier dürfte Dir auffallen, daß die pwm1... Zeile außerhalb einer Funktion steht - auch wird sich unterhalb wohl noch eine schließende Klammer finden lassen (gehe ich Mal von aus).

MfG

PS: Bei Deiner recht detailreichen Fehlerbeschreibung brauchst Du Dich nicht wirklich über ebenso detailreiche Lösungen beschweren.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

1to8modelmaker

Diese Funktion habe ich auch schon ausgeführt.

1to8modelmaker

wer nutzt diese Konfigaration bei sich ?

combie

Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Go Up