Arduino kod za servo motor
Moderators: pedja089, stojke369, trax, InTheStillOfTheNight
Arduino kod za servo motor
Nemam pojma sa kodiranjem, treba mi jednostavan kod koji ce da radi sledece:
Kada na neki pin arduina dodje +5V da se servo pomeri na 180 stepeni, a ako nema tih 5V da se vrati na nula stepeni i da tih nula stepeni bude pocetna pozicija. Znaci samo ako ima +5V da ide na 180, u svakom drugom slucaju da bude na 0 stepeni.
Inace na tom ulaznom pinu moze da bude ili +5v ili 0V.
Trazio sam po netu da li ima tako nesto, probao sam da preradim neke slicne ali se nisam uopste snasao.
Inace pravim ebike a servo treba da dize i spusta elektromotor od tocka tj. gume.
Kada na neki pin arduina dodje +5V da se servo pomeri na 180 stepeni, a ako nema tih 5V da se vrati na nula stepeni i da tih nula stepeni bude pocetna pozicija. Znaci samo ako ima +5V da ide na 180, u svakom drugom slucaju da bude na 0 stepeni.
Inace na tom ulaznom pinu moze da bude ili +5v ili 0V.
Trazio sam po netu da li ima tako nesto, probao sam da preradim neke slicne ali se nisam uopste snasao.
Inace pravim ebike a servo treba da dize i spusta elektromotor od tocka tj. gume.
Re: Arduino kod za servo motor
Evo nesto sam izmursovao i RADI. Ako neko ima neku sugestiju neka kaze jer sam apsolutni pocetnik. Kako da malo usporim okretanje serva? Da ne ide maksimalnom brzinom tamo-vamo?
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
servo1.write(180);
}
else {
servo1.write(10);
}
}
Re: Arduino kod za servo motor
Moras mu postepeno menjati ugao. A ne naglo.
Znaci pri prelasku iz jednog u drugo stanje ides prvo 11, pa 12 i tako redom ili veci koraci... Sa pauzom nekom izmedju.
Znaci pri prelasku iz jednog u drugo stanje ides prvo 11, pa 12 i tako redom ili veci koraci... Sa pauzom nekom izmedju.
Re: Arduino kod za servo motor
Probao i ukapirao da mi ipak vise odgovara da ide brzo. Radi mi odlicno na Arduino UNO ali na Pro Mini se servo ponasa ludo, u jednu stranu ide nekako a u drugu zaglavi na pola puta i titra i ni ne stigne na zadatu poziciju. Imam posebno napajanje za servo tako da ima dovoljno struje i za motor i za arduino. Ne znam sta je, nemam drugi da probam. Verovatno cu UNO i da koristim, jedino mi zbog manjih gabarita vise odgovara Pro Mini. A i razlika u ceni je 2e
Re: Arduino kod za servo motor
Ako si uzeo pro mini što radi na 5V, onda su procesori isti i u UNO i pro mini. Tako da su kodovi isti kao i sheme i nema razloga da na jednom radi a drugom ne.
Ako si uzeo pro mini što radi na 3.3V a napajaš ga sa 5V, onda ti se vjerovatnos procesor zablesira
Ako si uzeo pro mini što radi na 3.3V a napajaš ga sa 5V, onda ti se vjerovatnos procesor zablesira
Re: Arduino kod za servo motor
Ne znam, sad cu da probam sa 3,3V. Pogledao sam na Aliexpressu gde sam narucio, pise da je 5V, ko zna mozda je kinez spakovao pogresno
Re: Arduino kod za servo motor
Isto se ponasa i sa 3,3V. Probao sam da koristim i druge pinove kao ulaze i kontrolu za servo ali je isto. Nebitno, bitno da radi na UNO. Treba da mi stignu nekoliko plocica od kineza pa cu probati opet.
Hvala svima, kad zavrsim EBike okacicu projekat na forumu, sad imam sve delove samo treba masinski deo odraditi, varenje...
Hvala svima, kad zavrsim EBike okacicu projekat na forumu, sad imam sve delove samo treba masinski deo odraditi, varenje...
Re: Arduino kod za servo motor
Procesori su isti, tako da ne vidim nijedan logičan razlog zašto bi na jednom radio a na drugom ne. Možda je pločica u banani
Re: Arduino kod za servo motor
Evo me opet, ne snalazim se. Crkao mi je servo i sada sam kupio servo motor koji navodno ima metalne zupcanike ali sam dobio sa plasticnim i sad mi treba da usporim brzinu serva ali nesto mi ne uspeva, ono sa delay ne funkcionise a ni ovo sto cu da postavim ovde takodje, negde gresim, pomagajte, to je za vas verovatno smesno
Prvi kod je prvobitni i sa njim je sve radilo godinu dana sa servom sa metalnim zupcanicima a drugi kod je nesto sto sam ja pokusavao i nisam uspeo. Inace kupio sam dva serva kod dva trgovca i oba su plasticni a u oglasu pise ALL METAL GEARS
Prvi kod je prvobitni i sa njim je sve radilo godinu dana sa servom sa metalnim zupcanicima a drugi kod je nesto sto sam ja pokusavao i nisam uspeo. Inace kupio sam dva serva kod dva trgovca i oba su plasticni a u oglasu pise ALL METAL GEARS
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
servo1.write(180);
}
else {
servo1.write(10);
}
}
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
int pos = 0;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
for (pos=0; pos<=180; pos+=1)
servo1.write(180);
delay(100);
}
else {
for (pos=0; pos<=180; pos-=1)
servo1.write(10);
delay(100);
}
}
Re: Arduino kod za servo motor
Blizu si bio.
Probaj izmeniti ovo
u ovo
Probaj izmeniti ovo
Code: Select all
servo1.write(10);
Code: Select all
servo1.write(Pos);
Re: Arduino kod za servo motor
Probao sam i isto se ponasa kao i sa onim prvim kodom. Ono delay koliko god da stavim on ide maximalnom brzinom, verovatno neka zagrada ima viska ili manjka, meni je ovo skoro kao da gledam u hieroglife
Molim te Pedja ako mozes ceo kod da pogledas, mozda vidis nesto nelogicno. Evo trenutnog koda:
Molim te Pedja ako mozes ceo kod da pogledas, mozda vidis nesto nelogicno. Evo trenutnog koda:
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
int pos = 0;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
for (pos=0; pos<=180; pos+=1)
servo1.write(180);
delay(10);
}
else {
for (pos=0; pos<=180; pos-=1)
servo1.write(pos);
delay(10);
}
}
Re: Arduino kod za servo motor
Ja ne koristim C, ali ajd da probam.
for (pos=0; pos<=180; pos-=1){
servo1.write(pos);
delay(10);
}
for (pos=0; pos<=180; pos-=1){
servo1.write(pos);
delay(10);
}
Re: Arduino kod za servo motor
Nece, ovako ne mrda uopste Nema veze, hvala ti, mozda se javi neko ko koristi C, igracu se ja jos u medjuvremenu. Ponovicu jos jednom sta mi treba da ne bi citali celu temu.
Nemam pojma sa kodiranjem, treba mi jednostavan kod koji ce da radi sledece:
Kada na neki pin (pin4) arduina dodje +5V da se servo pomeri na 180 stepeni, a ako nema tih 5V da se vrati na nula stepeni i da tih nula stepeni bude pocetna pozicija. Znaci samo ako ima +5V da ide na 180, u svakom drugom slucaju da bude na 0 stepeni.
Inace na tom ulaznom pinu moze da bude ili +5v ili 0V.
Potrebno je da servo ne ide maximalnom brzinom vec sporije.
Evo kod koji radi ali brzo:
Nemam pojma sa kodiranjem, treba mi jednostavan kod koji ce da radi sledece:
Kada na neki pin (pin4) arduina dodje +5V da se servo pomeri na 180 stepeni, a ako nema tih 5V da se vrati na nula stepeni i da tih nula stepeni bude pocetna pozicija. Znaci samo ako ima +5V da ide na 180, u svakom drugom slucaju da bude na 0 stepeni.
Inace na tom ulaznom pinu moze da bude ili +5v ili 0V.
Potrebno je da servo ne ide maximalnom brzinom vec sporije.
Evo kod koji radi ali brzo:
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
servo1.write(180);
}
else {
servo1.write(10);
}
}
Re: Arduino kod za servo motor
for (pos=0; pos<=180; pos-=1)
Ta petlja nije dobra nikako.
Mislim da bi trebalo da ide
Ta petlja nije dobra nikako.
Mislim da bi trebalo da ide
Code: Select all
for (pos=180; pos>1 ; pos-=1)
Re: Arduino kod za servo motor
Opet isto, radi ali brzo, ovo delay (1000) ili koliko god da stavim uopste ne igra ulogu, probao sam svasta da menjam i ili radi isto ili mi izbaci gresku u kodu ili ne mrda
Trenutni kod:
Trenutni kod:
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
int pos = 0;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
for (pos=0; pos<=180; pos+=1);
servo1.write(pos);
delay(1000);
}
else {
for (pos=180; pos>1 ; pos-=1);
servo1.write(pos);
delay(1000);
}
}
Re: Arduino kod za servo motor
Opet ti fale zagrade obelezene crvenim u prethodnom postu.
Ovako nekako
Ovako nekako
Code: Select all
else {
for (pos=180; pos>1 ; pos-=1){
servo1.write(pos);
delay(1000);}
}
Re: Arduino kod za servo motor
Novi momenat! Proradilo je delimicno, konacno reaguje na promene delay i kada je
PIN 4 na HIGH (+5V) pomeri se polako na 180 stepeni i stane. To radi.
Problem je kad je PIN 4 NA LOW (0V), i onda pocne stalno isto da radi: ide polako od 360 stepeni ka nuli, stigne polako do nule ali se odmah brzo vraca na 360 pa opet polako do nule pa brzo do 360 i sve tako
Cim mu dovedem pin 4 na HIGH polako ode na 360 kao sto treba i stoji tu.
PIN 4 na HIGH (+5V) pomeri se polako na 180 stepeni i stane. To radi.
Problem je kad je PIN 4 NA LOW (0V), i onda pocne stalno isto da radi: ide polako od 360 stepeni ka nuli, stigne polako do nule ali se odmah brzo vraca na 360 pa opet polako do nule pa brzo do 360 i sve tako
Cim mu dovedem pin 4 na HIGH polako ode na 360 kao sto treba i stoji tu.
Code: Select all
//RumbaKing servo
#include <Servo.h>
int button1 = 4; //button pin, connect to +5V to move servo
int press1 = 0;
Servo servo1;
int pos = 0;
void setup()
{
pinMode(button1, INPUT);
servo1.attach(7);
digitalWrite(4, LOW); // make pin low
}
void loop()
{
press1 = digitalRead(button1);
if (press1 == HIGH)
{
for (pos=0; pos<=180; pos+=1);
servo1.write(pos);
delay(50);
}
else {
for (pos=180; pos>1 ; pos-=1){
servo1.write(pos);
delay(50);}
}
}
Re: Arduino kod za servo motor
To moras razraditi dalje u programu. Da se ne ponavlja stalno...
Re: Arduino kod za servo motor
Ok, videcu malo da se igram sa kodom, ima svasta na youtube, moram malo da ucim pod stare dane Hvala Pedja.
Re: Arduino kod za servo motor
Nema na cemu...
Da je pic u pitanju i pic basic mogao bi vise pomoci.
Da je pic u pitanju i pic basic mogao bi vise pomoci.