Arduino kod za servo motor

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

User avatar
Black
Odlično uznapredovao
Odlično uznapredovao
Posts: 981
Joined: 17-12-2008, 15:44

Re: Arduino kod za servo motor

Post by Black »

RumbaKing wrote: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.

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);}
  }
}

Radi točno ono što si mu naredio

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;

byte flag_za_res;

void setup()
{
  pinMode(button1, INPUT);
  servo1.attach(7);
  digitalWrite(4, LOW); // make pin low
}

void loop()
{
  press1 = digitalRead(button1);
  if (press1 == HIGH)
  {
    flag_za_res=0;
    for (pos=0; pos<=180; pos+=1);
    servo1.write(pos);
    delay(50);
    
  }
  else if(flag_za_res==0) {
   flag_za_res=1;
    for (pos=180; pos>1 ; pos-=1){
    servo1.write(pos);
    delay(50);}
  }
}


probaj ovo, nemam sad na laptopu arduina pa da testiram kod
Post Reply