Elektrik elektronik temrinleri
Ders Notlarý => Arduino Öðreniyorum => Konuyu baþlatan: kral_51 - 01 Mayýs 2016, 14:40:13
-
Merhaba,
Arduino öðrenmeye çalýþýyorum.1 adet arduino uno, 1 adet 5110 ekraný, 1 adet DS1307 aldým ve saat ayarlarýný yaptým. fakat 1 adet servo motoru hergün günde 3 defa çalýþtýrmak (saat 11, 13, ve 15'de) istiyorum. Bulduðum kodda bu deðiþikliði yapamadým. Bu konuda yardýmcý olabilecek var mýdýr?
#include <Servo.h>
Servo myservo; // sýnýfýn bir örneðini aldýk
void setup()
{
myservo.attach(5); // arduinonun 5. pinini çýkýþ yaptýk.
myservo.write(0); // motora ilk 0.derecesinden baþlamasý komutunu verdik
}
void loop()
{
myservo.write(95); // servonun ilk konumunu kapak kapalý olacak þekilde ayarlýyoruz
delay(2000); // balýklara hangi aralýklarda yem verileceðini ayarlamak için 1 gün ya da yarým gün yapýlmasý uygun olacaktýr
myservo.write(30); //servonun kapaðýnýn açýk olacaðý konumu ayarlýyoruz
delay(800); // kapaklarýn açýk olacaðý süre. Dökülecek yem miktarýný ayarlamak için
}
-
Verdiðiniz kodlar saat ayarlý çalýþmaz. Bu haliyle 2 saniye aralýklarla yem býrakmakta.
delay(2000); kodunundaki 2000 deðerini büyülterek daha uzun süreler elde edebilirsiniz.
-
Evet o örneði buldum fakat bana gerekli olan saate göre çalýþtýrmasý gerekli fakat kod bilgim olmadýðý için void loop kýsmýný yapamadým.
-
Biraz araþtýrmam gerek. Yaparsam paylaþýrým.
-
Teþekkür ederim, aslýnda elimde kod var 2 farklý fakat 2 sini birbirine geçirip uyduramadým :) bütün sorunda orda
x= rtc'den gelen zaman bilgisi
if x==08 or 09 or 10 => servoyu çalýþtýr
fakat bunu koda dökmek sorun iþte.
-
Zaman ayarý yapmak istiyorsan kesmelere bakmanda fayda var diye düþünüyorum. Timer kesmesi kullanarak bunu rahatlýkla yapabilirsin.
Kesmelere baktýðýnda beni anlayacaksýnýz.
Not: Kesmeler birazcýk ileri programlama gerektirebilir.
Örnek kesme uygulamasý:
https://gelecegiyazanlar.turkcell.com.tr/konu/arduino/egitim/arduino-104/zaman-kesmesi-timer-interrupt (https://gelecegiyazanlar.turkcell.com.tr/konu/arduino/egitim/arduino-104/zaman-kesmesi-timer-interrupt)