Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
12
Cevap
632
Tıklama
0
Öne Çıkarma
arduino ile kuluçka makinesi viyolü
C
5 yıl
Er
Konu Sahibi

Konuyu özet geçeceğim arduino ve step motor ile kuluçka makinesi viyolü yapmaya çalışıyorum motorun 4 saat aralıklarla sağa ve sola dönmesi gerekiyor ama kodlamada sıkıntı çıkıyor millis komutlarını yapamadım
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 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.

Üye Ol Şimdi Değil



E
5 yıl
Yüzbaşı

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



C
5 yıl
Er
Konu Sahibi

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



A
5 yıl
Teğmen

▲     





< Bu mesaj bu kişi tarafından değiştirildi Ayrıldı01 -- 23 Ocak 2022; 15:9:49 >
Bu mesaja 1 cevap geldi.
E
5 yıl
Yüzbaşı

Şöyle bişey olabilir.


#include <StepperMotor.h>
#define DORT_SAAT 14400000

StepperMotor motor(2,3,4,5);
unsigned long birsonraki = DORT_SAAT;
int adim = 1000;

void setup()
{
Serial.begin(9600);
motor.setStepDuration(1);
}

void loop()
{
while(millis() != birsonraki) ;
birsonraki += DORT_SAAT;

motor.step(adim);
adim = -adim;
}


Bu mesaja 1 cevap geldi.
C
5 yıl
Er
Konu Sahibi

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




Bu mesajda bahsedilenler: @Hate Fate
C
5 yıl
Er
Konu Sahibi

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



C
5 yıl
Er
Konu Sahibi

bu şekilde sadece sağa dönmezmi




Bu mesajda bahsedilenler: @EmuDev
E
5 yıl
Yüzbaşı

Hayır hem sağa hem sola döner.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 2 cevap geldi.
C
5 yıl
Er
Konu Sahibi

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ç




Bu mesajda bahsedilenler: @EmuDev
C
5 yıl
Er
Konu Sahibi

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




Bu mesajda bahsedilenler: @EmuDev
E
5 yıl
Yüzbaşı

Step motorlardan pek anlamam ama transistör ya da röle gibi bir anahtarlama elemanıyla sadece gerektiğinde motora güç verilmesini sağlayabilirsin.



C
5 yıl
Er
Konu Sahibi

çö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



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.