VarSpeedServo
10 berichten
• Pagina 1 van 1
- JanKoelewijn1
- Berichten: 5
- Geregistreerd: 09 Sep 2019, 09:24
VarSpeedServo
Dag allemaal,
het leek me leuk om een spoorbomen te bedienen met een servo en een Arduino.
in eerste instantie met een IR afstandsbediening.
Tot zover lukt het allemaal, alles reageert en ik kan de beweging instellen.
Nu ben ik zover dat ik de snelheid wil instellen en ik dacht dat te doen m.b.v. VarSpeedServo. De betreffende bestanden in de library gezet en de volgende regel opgenomen in de sketch:
#include <VarSpeedServo.h>
dan ziet de sketch er dus als volgt uit:
Fout bij het compileren voor board Arduino/Genuine Uno
Wie kan mij een beetje op weg helpen?
Gr. Jan
het leek me leuk om een spoorbomen te bedienen met een servo en een Arduino.
in eerste instantie met een IR afstandsbediening.
Tot zover lukt het allemaal, alles reageert en ik kan de beweging instellen.
Nu ben ik zover dat ik de snelheid wil instellen en ik dacht dat te doen m.b.v. VarSpeedServo. De betreffende bestanden in de library gezet en de volgende regel opgenomen in de sketch:
#include <VarSpeedServo.h>
dan ziet de sketch er dus als volgt uit:
- Code: Alles selecteren
#include <IRremote.h>
#include <Servo.h>
#include <VarSpeedServo.h>
int IRpin = 11; // pin for the IR sensor
IRrecv irrecv(IRpin);
decode_results results;
Servo myservo;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
if (irrecv.decode(&results))
{
irrecv.resume(); // Receive the next value
}
if (results.value == 3373) // change according to your IR remote button number
{
myservo.write(0);
delay(15);
}
if (results.value == 3340) // change according to your IR remote button number
myservo.write(90);
delay(15);
}
Fout bij het compileren voor board Arduino/Genuine Uno
Wie kan mij een beetje op weg helpen?
Gr. Jan
Advertisement
Re: VarSpeedServo
Hallo, en welkom op dit forum.
Ik zie verschillende soorten "VarSpeedServo" libraries.
Welke heb je en vanwaar heb je die gedownload of heb je de Bibliotheek Beheer gebruikt ?
Elke bibliotheek heeft voorbeelden. Heb je die bekeken ?
Je zou ook de hele uitvoer van de compiler hier kunnen zetten. De compiler geeft meestal vrij goed aan wat het probleem is.
Jouw object "myservo" is van de class "Servo".
Dat kan niet de bedoeling zijn, waarschijnlijk is de class "VarSpeedServo" nodig.
Wil je een bestaande sketch uitbreiden met een langzame servo ? Dat doet geen enkele programmeur. Als je iets nieuws wilt toevoegen, dan is het beter om dat deel eerst apart te testen met een aparte sketch. Dan kun je zien of het überhaupt werkt. Pas daarna kun je het aan een bestaande sketch toevoegen.
Kijk ook eens naar het inspringen en de '{' en '}' haakjes. Ik geef er de voorkeur aan om iedere spatie, iedere komma, ieder inspringen, enzovoorts allemaal correct te doen. Dan kun je in één oogopslag de structuur van de code zien.
Ik zie verschillende soorten "VarSpeedServo" libraries.
Welke heb je en vanwaar heb je die gedownload of heb je de Bibliotheek Beheer gebruikt ?
Elke bibliotheek heeft voorbeelden. Heb je die bekeken ?
Je zou ook de hele uitvoer van de compiler hier kunnen zetten. De compiler geeft meestal vrij goed aan wat het probleem is.
Jouw object "myservo" is van de class "Servo".
Dat kan niet de bedoeling zijn, waarschijnlijk is de class "VarSpeedServo" nodig.
Wil je een bestaande sketch uitbreiden met een langzame servo ? Dat doet geen enkele programmeur. Als je iets nieuws wilt toevoegen, dan is het beter om dat deel eerst apart te testen met een aparte sketch. Dan kun je zien of het überhaupt werkt. Pas daarna kun je het aan een bestaande sketch toevoegen.
Kijk ook eens naar het inspringen en de '{' en '}' haakjes. Ik geef er de voorkeur aan om iedere spatie, iedere komma, ieder inspringen, enzovoorts allemaal correct te doen. Dan kun je in één oogopslag de structuur van de code zien.
- JanKoelewijn1
- Berichten: 5
- Geregistreerd: 09 Sep 2019, 09:24
Re: VarSpeedServo
Dag Koepel,
Met de uitvoer van de compiler bedoel je datgene wat je met de knop Foutmelding kopiëren kopieert. Daar heb ik over gedacht maar het leek mij wel wat veel worden.
Hier komt dat hele verhaal,
Arduino:1.8.9 (Mac OS X), Board:"Arduino/Genuino Uno"
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:96:16: error: redeclaration of '_timer1'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
^
In file included from /private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:63:0,
from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/avr/ServoTimers.h:57:16: note: previous declaration 'timer16_Sequence_t _timer1'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:96:25: error: redeclaration of '_Nbr_16timers'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
^
In file included from /private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:63:0,
from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/avr/ServoTimers.h:57:25: note: previous declaration 'timer16_Sequence_t _Nbr_16timers'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:96:41: error: conflicting declaration 'typedef enum timer16_Sequence_t timer16_Sequence_t'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
^
In file included from /private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:63:0,
from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/avr/ServoTimers.h:57:41: note: previous declaration as 'typedef enum timer16_Sequence_t timer16_Sequence_t'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:114:3: error: conflicting declaration 'typedef struct ServoPin_t ServoPin_t'
} ServoPin_t ;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:0:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:95:3: note: previous declaration as 'typedef struct ServoPin_t ServoPin_t'
} ServoPin_t ;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:121:3: error: conflicting declaration 'typedef struct servo_t servo_t'
} servo_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:0:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:100:3: note: previous declaration as 'typedef struct servo_t servo_t'
} servo_t;
^
exit status 1
Fout bij het compileren voor board Arduino/Genuino Uno
Dit rapport zou meer informatie bevatten met
"Uitgebreide uitvoer weergeven tijden compilatie"
optie aan in Bestand -> Voorkeuren.
Gr. Jan
Met de uitvoer van de compiler bedoel je datgene wat je met de knop Foutmelding kopiëren kopieert. Daar heb ik over gedacht maar het leek mij wel wat veel worden.
Hier komt dat hele verhaal,
Arduino:1.8.9 (Mac OS X), Board:"Arduino/Genuino Uno"
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:96:16: error: redeclaration of '_timer1'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
^
In file included from /private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:63:0,
from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/avr/ServoTimers.h:57:16: note: previous declaration 'timer16_Sequence_t _timer1'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:96:25: error: redeclaration of '_Nbr_16timers'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
^
In file included from /private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:63:0,
from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/avr/ServoTimers.h:57:25: note: previous declaration 'timer16_Sequence_t _Nbr_16timers'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:96:41: error: conflicting declaration 'typedef enum timer16_Sequence_t timer16_Sequence_t'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
^
In file included from /private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:63:0,
from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/avr/ServoTimers.h:57:41: note: previous declaration as 'typedef enum timer16_Sequence_t timer16_Sequence_t'
typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:114:3: error: conflicting declaration 'typedef struct ServoPin_t ServoPin_t'
} ServoPin_t ;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:0:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:95:3: note: previous declaration as 'typedef struct ServoPin_t ServoPin_t'
} ServoPin_t ;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:4:0:
/Users/j.koelewijn/Documents/Arduino/libraries/VarSpeedServo/VarSpeedServo.h:121:3: error: conflicting declaration 'typedef struct servo_t servo_t'
} servo_t;
^
In file included from /Users/j.koelewijn/Documents/Arduino/bediening_servo_met_afstandsbediening_9sep19_JK/bediening_servo_met_afstandsbediening_9sep19_JK.ino:3:0:
/private/var/folders/p_/xdqcsydn7tl5ps8f5qb3cdzh0000gn/T/AppTranslocation/FD347361-8CCB-45B8-90CD-7B1ED6F292B8/d/Arduino.app/Contents/Java/libraries/Servo/src/Servo.h:100:3: note: previous declaration as 'typedef struct servo_t servo_t'
} servo_t;
^
exit status 1
Fout bij het compileren voor board Arduino/Genuino Uno
Dit rapport zou meer informatie bevatten met
"Uitgebreide uitvoer weergeven tijden compilatie"
optie aan in Bestand -> Voorkeuren.
Gr. Jan
Re: VarSpeedServo
Dat is inderdaad de uitvoer van de compiler, dat het veel is dat geeft niet.
Soms is een nieuwe library een uitbreiding op de meegeleverde Arduino libraries.
Soms is een nieuwe library een vervanging van een meegeleverde Arduino library.
De VarSpeedServo is blijkbaar een vervanging van de Arduino "Servo" library. Je kunt ze dus niet beiden tegelijk gebruiken.
Zie verder mijn tips in mijn vorige post. Begin eens met een servo motor en een voorbeeld dat bij de VarSpeedServo library zit (die voorbeelden zitten in het menu, zodra je een nieuwe library hebt toegevoegd).
Soms is een nieuwe library een uitbreiding op de meegeleverde Arduino libraries.
Soms is een nieuwe library een vervanging van een meegeleverde Arduino library.
De VarSpeedServo is blijkbaar een vervanging van de Arduino "Servo" library. Je kunt ze dus niet beiden tegelijk gebruiken.
Zie verder mijn tips in mijn vorige post. Begin eens met een servo motor en een voorbeeld dat bij de VarSpeedServo library zit (die voorbeelden zitten in het menu, zodra je een nieuwe library hebt toegevoegd).
- JanKoelewijn1
- Berichten: 5
- Geregistreerd: 09 Sep 2019, 09:24
Re: VarSpeedServo
Ga ik doen, bedankt!
Gr. Jan
Gr. Jan
Re: VarSpeedServo
zo even een voorbeeldje gepakt.
je moet dus servo zelf weghalen want dat wordt al opgheroepen bij varspeedservo
nu kun je dus ook de snelheid regelen.
zorg ook voor een pauze voordat de bomen dichtgaan, dus eerst de lampen dan de bel en dan pas de bomen.
je moet dus twee waardes opgeven bij je write 1 voor de stand en 2 de snelheid in microseconden (niet druk om maken doet je arduino zelf.
[code2=]#include <VarSpeedServo.h>
// create servo object to control a servo
VarSpeedServo myservo1;
VarSpeedServo myservo2;
void setup() {
// initialize serial:
//Serial.begin(9600);
myservo1.attach(9);
myservo2.attach(8);
}
void loop() {
int LEF = 0;
int RIG = 180;
int SPEED1 = 160;
int SPEED2 = 100;
for(int i = 0; i < 4; i++) {
myservo1.write(LEF, SPEED1);
myservo2.write(LEF, SPEED2);
myservo1.wait();
myservo2.wait();
myservo1.write(RIG, SPEED1);
myservo1.wait();
myservo1.write(LEF, SPEED1);
myservo2.write(RIG, SPEED2);
myservo1.wait();
myservo2.wait();
myservo1.write(RIG, SPEED1);
myservo1.wait();
}
///*
delay(3000);
myservo1.detach();
myservo2.detach();
// */
}[/code2]
je moet dus servo zelf weghalen want dat wordt al opgheroepen bij varspeedservo
nu kun je dus ook de snelheid regelen.
zorg ook voor een pauze voordat de bomen dichtgaan, dus eerst de lampen dan de bel en dan pas de bomen.
je moet dus twee waardes opgeven bij je write 1 voor de stand en 2 de snelheid in microseconden (niet druk om maken doet je arduino zelf.
[code2=]#include <VarSpeedServo.h>
// create servo object to control a servo
VarSpeedServo myservo1;
VarSpeedServo myservo2;
void setup() {
// initialize serial:
//Serial.begin(9600);
myservo1.attach(9);
myservo2.attach(8);
}
void loop() {
int LEF = 0;
int RIG = 180;
int SPEED1 = 160;
int SPEED2 = 100;
for(int i = 0; i < 4; i++) {
myservo1.write(LEF, SPEED1);
myservo2.write(LEF, SPEED2);
myservo1.wait();
myservo2.wait();
myservo1.write(RIG, SPEED1);
myservo1.wait();
myservo1.write(LEF, SPEED1);
myservo2.write(RIG, SPEED2);
myservo1.wait();
myservo2.wait();
myservo1.write(RIG, SPEED1);
myservo1.wait();
}
///*
delay(3000);
myservo1.detach();
myservo2.detach();
// */
}[/code2]
paul deelen
shooter@home.nl
shooter@home.nl
- JanKoelewijn1
- Berichten: 5
- Geregistreerd: 09 Sep 2019, 09:24
Re: VarSpeedServo
Dag Shooter, bedankt voor je reactie.
Kan het zijn dat jij een andere bibliotheek van VarSpeedServo hebt dan ik?
Ik krijg de volgende melding:
no matching function for call to 'VarSpeedServo::write(int&, int&)'
Gr. Jan
Kan het zijn dat jij een andere bibliotheek van VarSpeedServo hebt dan ik?
Ik krijg de volgende melding:
no matching function for call to 'VarSpeedServo::write(int&, int&)'
Gr. Jan
Re: VarSpeedServo
ja dat kan zeker, waar je de library vandaan hebt, staan vaak examples bij , probeer die maar eens.
ja en haal eerst maar eens include servo weg.en vervang die voor je varspeedservo, want die roept zelf wel servo aan.
ja en haal eerst maar eens include servo weg.en vervang die voor je varspeedservo, want die roept zelf wel servo aan.
paul deelen
shooter@home.nl
shooter@home.nl
- JanKoelewijn1
- Berichten: 5
- Geregistreerd: 09 Sep 2019, 09:24
Re: VarSpeedServo
Inmiddels een voorbeeld gedownload en dat werkt goed.
Gr. Jan
Gr. Jan
10 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: azenadaw en 9 gasten