INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fehler bei Servo-Bennenung??
11.06.2015, 00:26 (Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2015 00:31 von Leberwurst.)
Beitrag #1
Fehler bei Servo-Bennenung??
Hi alle zusammen,
wie die aufmerksamen Foristen schon bemerkt haben dürften, treten in meinem Projekt (Zauberwürfel-Löser) an allen Enden Fehler und Probleme aufConfused
Bin noch nicht wirklich erfahren mit dem ganzen Arduino-Thema,
und suche deswegen bei Euch um RatBlush

Bei dem Programm, welches die Lösungszüge für den Würfel in Funktionen fasst, meckert der Compiler und ich finde einfach keine Lösung des Problems.

Zitat:/*-----------------------------------------------
-----------------------------------------------*/
#include <Servo.h>
/*-----------------------------------------------
-----------------------------------------------*/
/* g1 = Greifer 1 */
/* g2 = Greifer 2 */
/* 0g1 = Zustand, in dem g1 nicht greift */
/* 1g1 = Zustand, in dem g1 greift */

Servo d1 ; // Dreher Nummer 1 an Pin D0
Servo 1a1 ; // Greifarm 1 an Dreher 1 an Pin D1
Servo 1a2 ; // Greifarm 2 an Dreher 1 an Pin D2
Servo d2 ; // Dreher Nummer 2 an Pin D3
Servo 2a1 ; // Greifarm 1 an Dreher 2 an Pin D4
Servo 2a2 ; // Greifarm 2 an Dreher 2 an Pin D5
int pos = 0 ; // Variable für die aktuelle Servoposition

int 01a1 = 0 ; // Servoposition für geöffneten Greiferarm 1a1
int 01a2 = 0 ; // Servoposition für geöffneten Greiferarm 1a2
int 02a1 = 0 ; // Servoposition für geöffneten Greiferarm 2a1
int 02a2 = 0 ; // Servoposition für geöffneten Greiferarm 2a2

int 11a1 =1 ; // Servoposition für greifenden Greiferarm 1a1
int 11a2 =1 ; // Servoposition für greifenden Greiferarm 1a2
int 12a1 =1 ; // Servoposition für greifenden Greiferarm 2a1
int 12a2 =1 ; // Servoposition für greifenden Greiferarm 2a2

int zd1 = 1 ; //Position, bis d1 einen z-Move erreicht
//int 2zd1 = 2  ; //Position, bis d1 einen 2z-Move erreicht
int 0d1 = 0 ; //Standartposition von d1
int zzd1 = -1 ; //Position, bis d1 einen z'-Move erreicht
//int 2zzd1 = -2  ; //Position, bis d1 einen 2z-Move erreicht

int yd2 = 1 ; //Position, bis d2 einen y-Move erreicht
//int 2yd2 = 2  ; //Position, bis d2 einen 2y-Move erreicht
int 0d2 = 0 ; //Standartposition von d2
int yyd2 = -1 ; //Position, bis d2 einen y'-Move erreicht
//int 2yyd2 = -2  ; //Position, bis d2 einen 2y-Move erreicht
/*-----------------------------------------------
-----------------------------------------------*/
void setup()

    d1.attach(0) ;
    1a1.attach(1) ;
    1a2.attach(2) ;
    d2.attach(3) ;
    2a1.attach(4) ;
    2a2.attach(5) ;

/*-----------------------------------------------
-----------------------------------------------*/
void 0g1 () // g1 greift nicht
{
    pos = 01a1  ;               
    1a1.write(pos) ;
/* 1a1 in nicht greifende Position bringen */
    pos = 01a2  ;     
    1a2.write(pos) ;
    delay(500) ; /* Beiden Armen Zeit zum positionieren geben */
/* 1a2 in nicht greifende Position bringen */
}
/*-----------------------------------------------
-----------------------------------------------*/
void 0g2 () //g2 greift nicht
{
    pos = 02a1  ;               
    1a1.write(pos) ;
/* 2a1 in nicht greifende Position bringen */
    pos = 02a2  ;     
    2a2.write(pos) ;
    delay(500) ; /* Beiden Armen Zeit zum positionieren geben */
/* 2a2 in nicht greifende Position bringen */
}
/*-----------------------------------------------
-----------------------------------------------*/
void 1g1 () //g1 greift
{
    pos = 11a1  ;               
    1a1.write(pos) ;
/* 1a1 in greifende Position bringen */
    pos = 11a2  ;     
    1a2.write(pos) ;
    delay(500) ; /* Beiden Armen Zeit zum positionieren geben */
/* 1a2 in greifende Position bringen */
}
/*-----------------------------------------------
-----------------------------------------------*/
void 1g2 () //g2 greift
{
    pos = 12a1  ;               
    1a1.write(pos) ;
/* 2a1 in greifende Position bringen */
    pos = 12a2  ;     
    1a2.write(pos) ;
    delay(500) ; /* Beiden Armen Zeit zum positionieren geben */
/* 2a2 in greifende Position bringen */
}
/*-----------------------------------------------
-----------------------------------------------*/
void z () // Cuberotation z (wie f in Speedcubing Notation)
{
  1g1 ()  ; //greifer 1 greifen lassen
  0g2 ()  ; //greifer 2 ist geöffnet
  delay(500) ; // kurz warten
  pos = zd1  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  1g2 ()  ; //greifer 2 greifen lassen
  delay(500); //kurz warten
  0g1 ()  ;  // Greifer zurück drehen lassen
  pos = 0d1  ;        
  d1.write(pos) ;
  delay(500) ;
  1g1 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void zz () // Cuberotation z' (wie f' in Speedcubing Notation)
{
  1g1 ()  ; //greifer 1 greifen lassen
  0g2 ()  ; //greifer 2 ist geöffnet
  delay(500) ; // kurz warten
  pos = zzd1  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  1g2 ()  ; //greifer 2 greifen lassen
  delay(500); //kurz warten
  0g1 ()  ;  // Greifer zurück drehen lassen
  pos = 0d1  ;        
  d1.write(pos) ;
  delay(500) ;
  1g1 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void f () // f-move
{
  1g1 ()  ; //greifer 1 greifen lassen
  1g2 ()  ; //greifer 2 greifen lassen
  delay(500) ; // kurz warten
  pos = zd1  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  0g1 ()  ;  // Greifer zurück drehen lassen
  pos = 0d1  ;        
  d1.write(pos) ;
  delay(500) ;
  1g1 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void ff () // f'-move
{
  1g1 ()  ; //greifer 1 greifen lassen
  1g2 ()  ; //greifer 2 greifen lassen
  delay(500) ; // kurz warten
  pos = zzd1  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  0g1 ()  ;  // Greifer zurück drehen lassen
  pos = 0d1  ;        
  d1.write(pos) ;
  delay(500) ;
  1g1 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void y () // Cuberotation y (wie u' in Speedcubing Notation)
{
  1g2 ()  ; //greifer 2 greifen lassen
  0g1 ()  ; //greifer 1 ist geöffnet
  delay(500) ; // kurz warten
  pos = yd2  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  1g1 ()  ; //greifer 1 greifen lassen
  delay(500); //kurz warten
  0g2 ()  ;  // Greifer zurück drehen lassen
  pos = 0d2  ;        
  d2.write(pos) ;
  delay(500) ;
  1g2 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void yy () // Cuberotation y' (wie u in Speedcubing Notation)
{
  1g2 ()  ; //greifer 2 greifen lassen
  0g1 ()  ; //greifer 1 ist geöffnet
  delay(500) ; // kurz warten
  pos = yyd2  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  1g1 ()  ; //greifer 1 greifen lassen
  delay(500); //kurz warten
  0g2 ()  ;  // Greifer zurück drehen lassen
  pos = 0d2  ;        
  d2.write(pos) ;
  delay(500) ;
  1g2 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void d () // d-move
{
  1g2 ()  ; //greifer 2 greifen lassen
  1g1 ()  ; //greifer 1 ist geöffnet
  delay(500) ; // kurz warten
  pos = yd2  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  delay(500); //kurz warten
  0g2 ()  ;  // Greifer zurück drehen lassen
  pos = 0d2  ;        
  d2.write(pos) ;
  delay(500) ;
  1g2 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void dd () // d'-move
{
  1g2 ()  ; //greifer 2 greifen lassen
  1g1 ()  ; //greifer 1 ist geöffnet
  delay(500) ; // kurz warten
  pos = yyd2  ;        // Drehung ausühren
  d1.write(pos) ; // Drehung ausführen
  delay(1500) ; // kurz warten
  delay(500); //kurz warten
  0g2 ()  ;  // Greifer zurück drehen lassen
  pos = 0d2  ;        
  d2.write(pos) ;
  delay(500) ;
  1g2 ()  ;
  delay(500) ;
}
/*-----------------------------------------------
-----------------------------------------------*/
void b () // b-move
{
  y ()  ;
  y ()  ;
  f ()  ;
  y ()  ;
  y ()  ;
}
void bb () // b'-move
{
  y ()  ;
  y ()  ;
  ff ()  ;
  y ()  ;
  y ()  ;
}
void r () // r-move
{
  z ()  ;
  d ()  ;
  zz ()  ;
}
void rr () // r'-move
{
  z ()  ;
  dd ()  ;
  zz ()  ;
}
void l () // l-move
{
  yy ()  ;
  f ()  ;
  y ()  ;
}
void ll () // l'-move
{
  yy ()  ;
  ff ()  ;
  y ()  ;
}
void u () // u-move
{
  z ()  ;
  z ()  ;
  d ()  ;
  z ()  ;
  z ()  ;
}
void uu () // u'-move
{
  z ()  ;
  z ()  ;
  dd ()  ;
  z ()  ;
  z ()  ;
}
/*-----------------------------------------------
-----------------------------------------------*/

compiler zeigt an:

Greifer.ino:13:6: error: invalid suffix "g1" on integer constant
Greifer.ino:14:6: error: invalid suffix "g2" on integer constant
Greifer.ino:15:6: error: invalid suffix "g1" on integer constant
Greifer.ino:16:6: error: invalid suffix "g2" on integer constant
(noch öfter)
Greifer:13: error: expected unqualified-id before numeric constant
Greifer:14: error: expected unqualified-id before numeric constant
Greifer:15: error: expected unqualified-id before numeric constant
Greifer:16: error: expected unqualified-id before numeric constant
Greifer:12: error: expected unqualified-id before numeric constant
(noch öfter)

Was hat das zu bedeuten? Habe schon gegoogelt aber bin auf keine Lösung gestoßenConfused

Gruß
Leberwurst

P.S. Die Nullen und Einsen der Servopositionen "greifend" und "nicht greifend" werden noch durch Servopositionen ersetzt
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.06.2015, 04:49 (Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2015 04:53 von dqb312.)
Beitrag #2
RE: Fehler bei Servo-Bennenung??
Hallo,

ich glaube mal was gelesen zu haben, dass Variablennamen mit Buchstaben beginnen müssen - mit Ziffern am Anfang geht´s wohl nicht.

... hab einen Link dazu gefunden - recht weit unten steht es.
https://startingelectronics.org/software...variables/

Gruß Rainer
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.06.2015, 05:33
Beitrag #3
RE: Fehler bei Servo-Bennenung??
Moin,
jepp dqb hat Recht. Kann man ja leicht überprüfen.
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Einmalige Servo Motor Ausführung BanditBandeh 29 1.680 12.04.2018 12:04
Letzter Beitrag: MicroBahner
  Servo langsamer drehen und auf position lassen Thor Wallhall 13 1.315 12.04.2018 11:42
Letzter Beitrag: BanditBandeh
  Arduino DUE mit Adafruit 16 Kanal Servo-Driver juergen001 3 164 09.04.2018 10:51
Letzter Beitrag: juergen001
Question Servo.h Hilgi 9 348 28.03.2018 17:58
Letzter Beitrag: Hilgi
  Servo Steuerung mit PCA 9685 (Adressiernung) bernhard66 3 357 10.03.2018 11:06
Letzter Beitrag: juergen001
  Hilfe bei diesen Fehler MrMagoo 22 910 06.02.2018 20:03
Letzter Beitrag: hotsystems
  Servo über Transistor Harry 21 1.541 29.01.2018 19:30
Letzter Beitrag: hotsystems
  servo hector73 5 482 25.01.2018 06:13
Letzter Beitrag: hector73
  <RCReceive.h> Fehler do1xxy 7 425 13.01.2018 13:21
Letzter Beitrag: do1xxy
  Bei Power ein geht der Servo auf 90 Grad ? Franz54 12 1.024 09.01.2018 20:55
Letzter Beitrag: Franz54

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste