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