1. sayfa
int aralik = 18000000; Avr işlemcilerde int 2 byte'tır. Signed olduğu için en fazla 32767 sayısını tutabilir. int yerine long ya da unsigned long kullanabilirsin. Aslında "aralık" değişmeyecekse bunun için değişkene gerek yok. Bu arada 4 saat 14 400 000 ms ediyor sanırım. if (simdikizaman - oncekizaman >= 14400000) ... |
Başka bi kod deniyorum oda olmuyor sorunu bulabilen varmı #include <StepperMotor.h> StepperMotor motor(2,3,4,5); unsigned long simdikizaman = 0; void setup(){ Serial.begin(9600); motor.setStepDuration(1); simdikizaman = millis(); } void loop() { if ((millis()-simdikizaman) > 14400000&&(millis()-simdikizaman) < 14402000) { motor.step(1000); } if ((millis()-simdikizaman) > 48800000&&(millis()-simdikizaman) < 48802000) { motor.step(-1000); } if ((millis()-simdikizaman) >= 48802000) {simdikizaman = millis(); } } |
▲ |
Şöyle bişey olabilir.
|
Bu benim arduino ile ilk projem. kodlama bilgim 10 üstünden 1 falan saat modulünü alsam nasıl 4 saate bir çalıştırırım bilmiyorum, ama en mantıklı seçenek bu benim tek istediğim arduino nun 4 saat aralıkla sağa ve sola dönmesi bunu durmadan yapıcak |
bir arkadaş şu kodları yazdı ama çalıştığına emin değilim bi sorunmu var kodlarda [code][/code]#include <StepperMotor.h> StepperMotor motor(2,3,4,5); unsigned long simdikizaman = 0; void setup(){ Serial.begin(9600); motor.setStepDuration(1); simdikizaman = millis(); } void loop() { if ((millis()-simdikizaman) > 14400000&&(millis()-simdikizaman) < 14402000) { motor.step(500); } if ((millis()-simdikizaman) > 48800000&&(millis()-simdikizaman) < 48802000) { motor.step(-500); } if ((millis()-simdikizaman) >= 48802000) {simdikizaman = millis(); } } |
Hayır hem sağa hem sola döner. |
Teşşekür ederim senin verdiğin kod işe yarıyor galiba bu konuyuda güncel tutacağım internette sadece viyol sistemi bulunan bi kaynak yok hiç |
Kusura bakma sürekli rahatsız ediyorum seni. dönme işlemi sonrasında motora güç gitmeye devam ediyor (dönmüyor) motor ısınıyor bunu nasıl düzelte bilirim |
Step motorlardan pek anlamam ama transistör ya da röle gibi bir anahtarlama elemanıyla sadece gerektiğinde motora güç verilmesini sağlayabilirsin. |
çözüm basitmiş güç giden pinleri buldum sonra kod satırının sonuna digitalwrite low yaptım düzeldi makine versiyon 1 gelince detaylı anlatım yapıcam nasıl yaptığıma dair nasip olurda çıkım alabilirsem onlarıda yazarım |
1. sayfa
kodlamadan anlayan arkadaşlar yardımcı olursa sevinirim
Kuluçka makinesi bitince konuyu güncelleyip makinenin detaylarını anlata bilirim
[code][/code]
#include <StepperMotor.h>
StepperMotor motor(2,3,4,5);
unsigned long simdikizaman = 0;
unsigned long oncekizaman = 0;
int aralik = 18000000;
void setup(){
Serial.begin(9600);
motor.setStepDuration(1);
}
void loop()
{
simdikizaman = millis();
Serial.println(simdikizaman);
if (simdikizaman - oncekizaman >= aralik)
{
oncekizaman = simdikizaman;
}
if motor.step(1000)
else if motor.step(-1000)
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.