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
Star ATtiny Servo SOS SOS hansanne1310 2 76 Heute 18:43
Letzter Beitrag: hansanne1310
  Servo über Temperatur steuern querkopf71 3 64 Gestern 19:21
Letzter Beitrag: hotsystems
  Fehler in meinem Programm Franz54 7 162 01.12.2016 23:58
Letzter Beitrag: hotsystems
  ATtiny und Servo Bibliothek malsehen 9 308 15.10.2016 18:09
Letzter Beitrag: malsehen
  Fehler im Programmablauf binderj1 14 354 10.10.2016 10:29
Letzter Beitrag: StephanBuerger
  Fehler beim Kompilieren binderj1 5 295 03.10.2016 21:27
Letzter Beitrag: hotsystems
Smile Simpler Fehler bei MAP? malsehen 8 229 02.10.2016 19:46
Letzter Beitrag: malsehen
  Fehler beim Speichern von Projekten Manni66 16 687 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Servo soll nur in Ruhelage stoppen Sven1996 1 239 19.08.2016 14:37
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 757 16.07.2016 11:43
Letzter Beitrag: Binatone

Gehe zu:


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