LoRa Ürünleri Satın AL

Çözüldü265 görüntülenmeLoraLora 20d
0

2 istasyon şeklinde 20 d modeliyle veri alıp gönderebiliyorum hiçbir sorun yok. Ancak arduino nano her veri gönderdiğinde , kendisine bağlı olan servo motoru hareket ettiriyor. Tüm pinleri denedim aynı sonucu verdi.

Bağlantı şu şekilde = >  Arduino nano – Servo motor(digital pins) besleme dışarıdan 5v – Lora 20d besleme nano’dan 5v.
Araştırdığım forum sitelerinde genelde 2 istemcinin de aynı kütüphaneyi kullanabileceğinden veya nano’nun veri gönderirken pwm pinine yanlış frekans göndermesinden kaynaklı olabilir denmiş, ancak servoyu pwm pininde dahi kullanmazken aynı sonucu alıyorum.

Sizce bu sorunu nasıl çözebilirim ? Zamanınız için teşekkür ederim.

Soru yeni cevaplara kapalıdır.
En iyi cevap olarak seçildi
1

hocam geç cevap için kusura bakmayın

myservo.detach();

lora modülüne gönderim yapmadan önce bu kodu kullanıp sonra tekrar servoyu bağlayabilirsiniz. böyle yapınca sorun ortadan kalkıyor.

myservo.detach();
   ResponseStatus rs = e32ttl.sendFixedMessage(0, 44, 23, &data, sizeof(Signal));
  Serial.println(rs.getResponseDescription());

En iyi cevap olarak seçildi
0

hocam video dan tam anlaşılmıyor ama sanki servo bağlantıları yanlış. kod ve bağlantı şemasını gönderebilir misin.

Servo bağlantısı şu şekilde olmalıdır.

Sarı =  Sinyal

Turuncu / Kırmızı = 5V

Kahverengi = ortak GND (yani harici besleme varsa arduinonun gnd si ile birleştirilmeli)

örnek bir yazı

14 – Servo Motor Kullanımı

Yeni yorum gönderildi

Bağlantılarda bir hata yok @Mehmet bey acemi değilim 🙂 Sanırım kütüphane de bir sorun var servonun bir başka kütüphanesini deneyeceğim.

0

Sorun dediğim gibi kütüphane de ortaya çıktı.

// this sketch cycles three servos at different rates 
#include "LoRa_E32.h"
#include "ServoTimer2.h"  // the servo library
#include <SoftwareSerial.h>
// define the pins for the servos
#define rollPin  7
SoftwareSerial mySerial( 3 , 4 );
ServoTimer2 servoRoll;    // declare variables for up to eight servos
LoRa_E32 e32ttl( & mySerial);
 struct Signal {
 char type[ 15 ] = "Trying" ;
 byte temp[ 4 ];
 } data;
 void setup() {
  Serial.begin ( 9600 );
  servoRoll.attach(rollPin);     // attach a pin to the servos and they will start pulsing
  e32ttl.begin();
   delay ( 500 );
  servoRoll.write(0);
}
  // this function just increments a value until it reaches a maximum 
 int i=0;
void loop()
{ 
   i=i+1;
   servoRoll.write(180);
    ResponseStatus rs = e32ttl.sendFixedMessage( 0 , 44 , 23 , & data, sizeof (Signal));
  Serial.print(i);
  Serial.println (rs.getResponseDescription());
   delay ( 2000 );
   delay(10);   
}


Bu kod arduino içinde çalışırken,  servo sürekli bir hareket sergilemiyor, ancak yine 30 saniyede bir veya 15 saniyede bir, bu sürekli değişiyor, o hareketi yine yapıyor.
Kütüphane link: https://codeload.github.com/nabontra/ServoTimer2/zip/refs/heads/master

Cevaplanan soru
0

#include "LoRa_E32.h"
 #include <SoftwareSerial.h>
#include<Servo.h>
Servo servo1;
 SoftwareSerial mySerial( 3 , 4 );
 /*
 Pinler Arduino Nano Lora E32 433T20d
 */
 LoRa_E32 e32ttl( & mySerial);
 struct Signal {
 char type[ 15 ] = "Trying" ;
 byte temp[ 4 ];
 } data;
 void setup () {
 Serial.begin ( 9600 );
 e32ttl.begin();
 delay ( 500 );
servo1.attach(7);
 }
 void loop () {
 ResponseStatus rs = e32ttl.sendFixedMessage( 0 , 44 , 23 , & data, sizeof (Signal));
 Serial.println (rs.getResponseDescription());
 delay ( 2000 );
 }

Yeni yorum gönderildi

şu an yanımda servo yok. pazartesi aynı kodu çalıştırıp bakayım.

0

Sorunun
SoftwareSerial.h
Servo.h
Bu iki kütüphaneden kaynaklandığını düşünüyorum yabancı bazı kaynaklar da doğruluyor.Eve gelince tekrar deneyeceğim.

Cevaplanan soru