Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
155
Tıklama
0
Öne Çıkarma
servo motor 1 saat sonra hareket etmesi
P
9 yıl
Teğmen
Konu Sahibi

selamlar. servo motoru örneğin 2 saniyede 90 dereceyi alacak 1 saat bekleyecek sonra 45 dereceye dönecek 1 saat bekleyecek tekrar 90 dereceye dönecek şeklinde bir fonksiyon var mı acaba .



< Bu ileti mobil sürüm kullanılarak atıldı >

M
9 yıl
Teğmen

Dedigin olayı

if else
rotate_angle
delay komutlarıyla yapabilirsin





< Bu mesaj bu kişi tarafından değiştirildi mr.akbulut -- 17 Haziran 2016; 1:15:43 >
Bu mesaja 1 cevap geldi.
P
9 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: gezgin adam

Dedigin olayı

if else
rotate_angle
delay komutlarıyla yapabilirsin


temel bilgilere sahibim o yüzden yapamadım. dediğim anlamda olmuyor?




#include <Servo.h> 
#include <EEPROM.h>
#include <LiquidCrystal.h>
Servo myservo;
byte kontrast;
byte aydinlatma;
const byte kontrast_adres=0; //EEPROM da kontrast değerini kaydedeceğimiz adres
const byte aydinlatma_adres=1; //EEPROM da arka ışık süresini değerini kaydedeceğimiz adres
LiquidCrystal lcd(12,11,5,4,3,2);
int derece=0;
int pos=0;

void setup()
{
lcd.begin(16,2);
lcd.print("Derece");
delay(5000);
kontrast=EEPROM.read(kontrast_adres);
aydinlatma=EEPROM.read(aydinlatma_adres);
analogWrite(10,10-kontrast*7);
myservo.attach(8);
}

void loop()
{
int reading = analogRead(derece);
float voltage = reading * 5.0;
voltage /= 1024.0;
lcd.setCursor(7,0);
lcd.print(voltage);
lcd.setCursor(0,0);
lcd.println("volt");

float temperatureC = (voltage - 0.5) * 100 ;
lcd.setCursor(8,1);
lcd.print(temperatureC);
lcd.setCursor(0,1);
lcd.println("derece");

for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(100);

}
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
}
}











< Bu mesaj bu kişi tarafından değiştirildi prax -- 17 Haziran 2016; 12:03:24 >
Bu mesaja 1 cevap geldi.
G
9 yıl
Binbaşı

Arduinoda karta elektrik verildiğinden bu yana geçen süreyi veren bir sayacı var.

Kodu Millis() (çift L ile)

1 saat için 3.600.000 mili saniye geçmesini bekletmen gerekir.

ilk zamanı bir değişkene kaydeder sonra kaç milisaniye geçmesi gerekiyorsa o kadar eklersin, o değeri aşınca motoru çalıştırırsın. Dikkat etmen gereken ise belli bi süre sonra millis değeri sıfırlanır. Her işlemci türüne göre farklılık gösterebilir.

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

örnekteki koda bir bak istersen.

Bu arada eğer yapacağın işlem çok önemli ise sisteme bir adet gerçek zaman saati eklemeni tavsiye ederim. Yok çok önemli değilse mesela kuluçka makinesinde yumurta çevirteceksen millis de işini görür.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.