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
  Fehler in gleitkomma Berechnung BennIY 5 255 04.11.2017 19:10
Letzter Beitrag: Tommy56
  Suche Hilfe für den Fehler in der Datei Holzwurm56 5 316 01.11.2017 14:26
Letzter Beitrag: Holzwurm56
  Servo Ansteuerung SOFTHARD 23 1.203 17.10.2017 10:56
Letzter Beitrag: SOFTHARD
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 3.224 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  Arduino I2C Servo MarcelTitan 8 943 14.07.2017 10:09
Letzter Beitrag: Tommy56
  Compiler Fehler Harti 8 604 16.06.2017 17:51
Letzter Beitrag: Harti
  Fehler bei Zeitmessung Fox 15 748 24.05.2017 09:19
Letzter Beitrag: SkobyMobil
  Servo macht komische Sachen Jochenv 7 715 08.03.2017 00:23
Letzter Beitrag: Jochenv
  Servo-Ansteuerung über einen Push-Button Aubergine83 1 484 16.02.2017 19:49
Letzter Beitrag: georg01
  Seltsamer Fehler bei Vergleichsoperation ardu_arne 14 817 22.01.2017 20:35
Letzter Beitrag: Binatone

Gehe zu:


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