Nodemcu role kullanımı

Katılım
22 Aralık 2022
Mesajlar
83
Merhaba,
Bir projem var projede nodemcu ve servo mg99r kullanıyorum. Programlama dan sonra harici besleme ile karta voltaj vererek çalıştırıyorum. Direk ESP üzerinden servoya 5 volt aldığımda hep servo hız sorunu oluyor hemde ESP çok ısınıyor. 9 volt adaptör kullanarak 2 adet 3a regülatör kullandım birinci regülatöre 9V giriş 5 volt çıkış olarak ESP besledim. İkinci regülatöre Aynı adaptör den 9V giriş 7 v çıkış vermedim artı hattı servoya nötr tarafını ESP verdim sorunsuz çalıştı ama kartı internete bağlayınca ESP aşırı ısındı ve kart 3.3 volt çıkışları kısa devreye düştü. Bu 3. Esp kartım yaktım sizce sorun ne olabilir nerede hata yapıyorum.

Tüm proje ve ekipman bağlantıları resimdeki gibidir.
 

Ekler

  • IMG20230327001747.jpg
    IMG20230327001747.jpg
    324.1 KB · Görüntüleme: 108
Son düzenleme:
Yaptigin baglantilari anlatmak yerine sema cizsen sorun daha kolay anlasilir.
 
IMG_20230327_001754.jpg
Bu semaya göre 3 kart yaktım. Birde arasıra servo sola doğru rahat dönerken sağa doğru çok yavaş ve sallantılı dönebiliyor.elektirigi çekip tekrar verdiğinde düzeliyor birkaç kez sonrasında yine yapıyor. Nodemcu wifi üzerinde bağlandığında çok ısınmaya başlıyor.
 
Yaptigin baglantilari anlatmak yerine sema cizsen sorun daha kolay anlasilir.
Bu semaya göre 3 kart yaktım. Birde arasıra servo sola doğru rahat dönerken sağa doğru çok yavaş ve sallantılı dönebiliyor.elektirigi çekip tekrar verdiğinde düzeliyor birkaç kez sonrasında yine yapıyor. Nodemcu wifi üzerinde bağlandığında çok ısınmaya başlıyor.
 
1) Oncelikle avometre ile 5v cikisini izlemelisin. Bu voltaj gercekten 5v mu?
2) 3.3v cikisinda gercekten 3.3v var mi?

Dokunmatik tuslari sokup en azindan 3.3v dan cekilen akimi dusurerek bir daha test etmelisin.
Keza ayni sekilde RF aliciyi da bir devre disi birak.

Bana voltaj problemin var gibi geldi.

Regulator kartlarini tanimiyorum. Talep edilen akimi veremiyor olabilir. Regulator kartlarindaki malzemelerde asiri isinma varmi?
RF alici 5v ile besleniyor. Bunun cikisi da MCU kartina gidiyor. Eger RF alici cikisi 5V lojik seviyede sinyal veriyorsa ve bagli oldugu MCU pini de 5v kabul etmiyorsa buradan da sikinti gelebilir.

Bu yuzden oncelikle yukaridaki testleri sirayla yapmalisin.

Ote yandan MG996R max voltaji 6v imis. Buna 7v uygulamak da yanlis.

Servonun sorun cikartmasinin sebebi gene akim probleminden kaynaklanabilir. Regulatorun 2A verebiliyor mu? 9v Adaptorun yeterince guclu mu? (Adaptorun en azindan 3A belki de daha fazlasini verebilmesi lazim gibi gorunuyor)
 
Son düzenleme:
Öncelikle yorumun için tesekkurler
1) Oncelikle avometre ile 5v cikisini izlemelisin. Bu voltaj gercekten 5v mu?
2) 3.3v cikisinda gercekten 3.3v var mi?

Dokunmatik tuslari sokup en azindan 3.3v dan cekilen akimi dusurerek bir daha test etmelisin.
Keza ayni sekilde RF aliciyi da bir devre disi birak.

Bana voltaj problemin var gibi geldi.

Regulator kartlarini tanimiyorum. Talep edilen akimi veremiyor olabilir. Regulator kartlarindaki malzemelerde asiri isinma varmi?
RF alici 5v ile besleniyor. Bunun cikisi da MCU kartina gidiyor. Eger RF alici cikisi 5V lojik seviyede sinyal veriyorsa ve bagli oldugu MCU pini de 5v kabul etmiyorsa buradan da sikinti gelebilir.

Bu yuzden oncelikle yukaridaki testleri sirayla yapmalisin.

Ote yandan MG996R max voltaji 6v imis. Buna 7v uygulamak da yanlis.

Servonun sorun cikartmasinin sebebi gene akim probleminden kaynaklanabilir. Regulatorun 2A verebiliyor mu? 9v Adaptorun yeterince guclu mu? (Adaptorun en azindan 3A belki de daha fazlasini verebilmesi lazim gibi gorunuyor)
Öncelikle yorumun için teşekkürler. Evet regülatör 5 volt ve 7 volt direk veriyor ısınma yapmıyor.
RF alıcıyı mcu gelen voltaj dan besleyerek calisiyorum.harici bir beslemesi yok. Dokunmatik tuşlar çıkardım. Direnc ile yollarını kapattım ama sorun yine aynı oldu.
Servonun data sheet dosyasında 7.2 desteklediği yazıyordu. İlk yaktigim kartta 7 volt denedim .ikinci kartımda servoyu 5 volda düşürüp kart üzerinde besledim yine yandı. 3. Kartımda 12 volt 3 amper adaptör kullanarak regulatorleri avometre ile tam değerlerine alarak verdim yine yandi.
Peki bu bağlantı şeklinde kartı takip etmek için USB taksam karta zarar verir mi.
 
Mevcut durumda sorun varken once bu sorunu cozmek gerekir. USB den PCye vs baglanmaktan bahsediyorsan yapmamalisin.

Sanirim elinde scope yok.

Bir de mevcut devrelerinin tamaminin gorulecegi fotosuna bakalim.

Bu projeyi adim adim calistirsan daha iyi olur.

Servoyu, butonlari, RF aliciyi sokup MCU kartinla Wifi baglantisi kur kes, kur kes. Hic bir sorun cikmiyorsa bu kez mesela RF devresini bagla ve bununla ilgili bir test yazilimi olustur. Sonra butonlari ekle gene bir test yazilimi yap. En son da servoyu devreye alirsin.

Kullandigin malzemeler benim kullandigim tip malzemeler degil. Nokta atisi ariza surda demem zor.

Arizayi gene sen yakalayacaksin. Ariza bulmak santranc oynamak gibidir. Sen bir hamle yaparsin devreler sana bir hamle yapar. Boyle boyle adim adim sorunu koseye sikistiracaksin.

Mantigini kullan.

Eger Ankara'da isen zamanin varsa ugra. Bir sekilde kesin sorununu cozeriz.
 
Bir yanlışlık olmalı. Normal şartlarda 5V ya da çok daha üstünde sorunsuz çalışması lazım. Enerji verdikten sonra 3.3V pinini ölçebilir misiniz?
Bir de elinizde varsa 100uF kapasitör ekleyin regülatör çıkışına.
 
Evet 3.3 volt gösteriyor
Bir yanlışlık olmalı. Normal şartlarda 5V ya da çok daha üstünde sorunsuz çalışması lazım. Enerji verdikten sonra 3.3V pinini ölçebilir misiniz?
Bir de elinizde varsa 100uF kapasitör ekleyin regülatör çıkışına.

. Evet hocam 3.3 volt gösteriyor. Wifi uzerinden komut gonderdigimde neden wifi aşırı ısınma yapıyor onuda çözemedim.
 
Bir yanlışlık olmalı. Normal şartlarda 5V ya da çok daha üstünde sorunsuz çalışması lazım. Enerji verdikten sonra 3.3V pinini ölçebilir misiniz?
Bir de elinizde varsa 100uF kapasitör ekleyin regülatör çıkışına.
2 adet regülatör var ikisinedemi 100uF kondansatör ekleyeyim
 
Pinlerini konfigure ederken push pull ayarliyor olabilirsin. Bu da data alışverişinde mcudan fazla akim cekilmesine sebep olabilir.
 
kod:
#include <DNSServer.h>
#include <ESP8266WiFi.h>         //https://github.com/esp8266/Arduino
#include <ESP8266WebServer.h>
#include <WiFiManager.h>         // https://github.com/tzapu/WiFiManager
#include <Servo.h>
#include <RCSwitch.h>
#include <EEPROM.h>
#define EEPROM_SIZE 1
RCSwitch mySwitch = RCSwitch();
WiFiServer server(80);
Servo myservo;
int buttonState;// EEPROM a kaydedeceğimiz buton durumu.

// Pinler
const int openButton = 5;  // D1
const int closeButton  = 14; // D5
//const int closeLed = 12;    // D6
//const int resetButton = 13; // D7
//const int openLed = 15;     // D8
int buzzerPin = 16; //D0


void loop()
{
  buttonControl();
  htmlControl();
  rfControl();
}

const char* ssid = "Wifi2.4";  //Wifi adınız
const char* password = "12345678..";  //wifi şifreniz

WiFiEventHandler wifiBaglandiDurumu;
WiFiEventHandler wifiKoptuDurumu;

void initWireless()
{
  //yerel ağınıza bağlanmanız için gerekli komut
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Ağa Bağlanılıyor ..");
  while (WiFi.status() != WL_CONNECTED) { //ağ bağlantısı sağlanmış.  WL_NO_SSID_AVAIL,  WL_CONNECT_FAILED
  delay(1000);
  Serial.print("."); //bağlantı sağlanana kadar ekranda "." çıkmasını sağlıyoruz.(Loading gibi)
  }
  Serial.println("");
  Serial.println("WiFi Bağlandı..!");
  Serial.print("IP Adresiniz: ");   Serial.println(WiFi.localIP());


 

  server.begin();
  Serial.println("HTTP Sunucusu Başladı");
  // WiFiManager
  //WiFiManager wifiManager;
  //wifiManager.setSTAStaticIPConfig(IPAddress(192, 168, 0, 222), IPAddress(192, 168, 0, 1), IPAddress(255, 255, 255, 0));
  //wifiManager.autoConnect("Abdullah ak");
  //Serial.println("Connected.");
  //server.begin();
}

void baglanincaYap(const WiFiEventStationModeGotIP & event) {
  Serial.println("Ağ Bağlantısı Sağlandı");
  Serial.print("IP adresi: ");
  Serial.println(WiFi.localIP());
}

void kopuncaYap(const WiFiEventStationModeDisconnected& event) {
  Serial.println("Ağ bağlantısı koptu, yeniden deniyor...");
  WiFi.disconnect();
  WiFi.begin(ssid, password);
}

void setup() {
  Serial.begin(115200);
  pinMode(buzzerPin, OUTPUT);
  //Pin modlarını ayarlayan method çağrılıyor
  initPinModes();

  // Wireless bağlantı ayarlarını yapan method
  initWireless();
  EEPROM.begin(EEPROM_SIZE);
  buttonState = EEPROM.read(0);// Buton durumunu EEPROM a kaydediyoruz.
  Serial.println("İlk Açılış");
  Serial.println(EEPROM.read(0));
  mySwitch.enableReceive(0);  // D3
  delay(2500);

    //bu iki handler nesnesi ile iki fonksiyonu bağlayalım.
 // wifiBaglandiDurumu = WiFi.onStationModeGotIP(baglanincaYap);
 // wifiKoptuDurumu = WiFi.onStationModeDisconnected(kopuncaYap); 

  
  initWireless();//ağ bağlantısını kur
  Serial.print("Sinyal Seviyesi: ");
  Serial.println(WiFi.RSSI());//ağın sinyal çekim gücü
}

// Pin modlarını ayarlayan method


void initPinModes()
{
  Serial.begin(115200);
  //pinMode(openLed, OUTPUT);
  //pinMode(closeLed, OUTPUT);
  pinMode(openButton, INPUT_PULLUP);
  pinMode(closeButton, INPUT_PULLUP);
  //pinMode(resetButton, INPUT_PULLUP);
}

void htmlControl() {
  // bir clien istemci baglı olup olmadığını kontrol ediyoruz
  WiFiClient client = server.available();

  if (!client) {
    return;
  }

  // client ın bir data gondermesini bekliyoruz
  Serial.println("new client");
{
    delay(10);
  }

  // gelen istekleri okuyoruz
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  if ((request.indexOf("/KAPI-KAPALI") != -1 ) && (buttonState == 0))
  {
    Serial.println("Web Kapanış");
    Kapi_Kapat();

  }
  if ((request.indexOf("/KAPI-ACIK") != -1 ) && (buttonState == 1))
  {
    Serial.println("Web Açılış");
    Kapi_Ac();

  }

 // bu kısımda html kodlarını internet arayüzüne yazıdırıyoruz.
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");
  client.println("<!DOCTYPE html><html lang='tr'><head><meta charset='utf-8'><meta name='viewport' content='width=device-width, initial-scale=1,shrink-to-fit=no'>");
  client.println("<!-- Bootstrap CSS -->");
  client.println("<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css' integrity='sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ' crossorigin='anonymous'>");
  client.println("<body>");
  client.println("<div class='container mt-2'>");
  client.println("<div class='row'>");
  client.println("<div class='col-sm-12'>");
  client.println("<div class='card'>");
  client.println("<div class='card-header'>");
  client.println("<h4>AKILLI KAPI PROJESİ</h4>");
  client.println("</div>");
  client.println("<div class='card-body'>");
  client.println("<div class='table-responsive'>");
  client.println("<thead>");
  client.println("</thead>");
  client.println("<tbody>");
  client.println("<table width='10%' height='10%' border='0' cellspacing='1' cellpadding='1'align='center'><tr>");
  client.println("<td class='align-center'>");
  if (buttonState == 0)
  {
    client.println("<a href=\"/KAPI-KAPALI\"\"><div class='d-flex align-items-center rounded float-center p-3 py-2 mb-1 bg-light rounded' style='font-size: 10em'><svg x='10' class='bi bi-unlock-fill' width='1em' height='1em' viewBox='0 0 16 16' fill='#FB8C00' xmlns='http://www.w3.org/2000/svg'><path d='M11 1a2 2 0 0 0-2 2v4a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h5V3a3 3 0 0 1 6 0v4a.5.5 0 0 1-1 0V3a2 2 0 0 0-2-2z'></path></svg></div></a>");
    buttonState == 1;
  }
  else if (buttonState == 1)
  {
    client.println("<a href=\"/KAPI-ACIK\"\"><div class='d-flex align-items-center rounded float-center p-3 py-2 mb-1 bg-light rounded' style='font-size: 10em'><svg class='bi bi-lock-fill' width='1em' height='1em' viewBox='0 0 16 16' fill='#CC0000' xmlns='http://www.w3.org/2000/svg'><path d='M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z'></path></svg></div></a>");
    buttonState == 0;
  }
  client.println("</td>");
  client.println("</tr>");
  client.println("</table>");
  client.println("</tbody>");
  client.println("</div>");
  client.println("</div>");
  client.println("<div class='card-footer'>");
  client.println("<div class='form-group float-left'>Abdullah AK 2023</div>");
  client.println("</div>");
  client.println("</div>");
  client.println("</body>");
  client.println("</html>");
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}
void buttonControl() {
  if ((digitalRead(closeButton) == HIGH) && (buttonState == 0))
  {
    Serial.println("Buton Kapanış");
    Kapi_Kapat();
  }

  if ((digitalRead(openButton) == HIGH) && (buttonState == 1))
  {
    Serial.println("Buton Açılış");
    Kapi_Ac();
  }

  //if (digitalRead(resetButton) == HIGH)
  {
  //  Serial.println("Ayarlar Silindi");
    //digitalWrite(closeLed, HIGH);
    //digitalWrite(openLed, HIGH);
    //ESP.eraseConfig();
    //delay(3500);
   // digitalWrite(closeLed, LOW);
  //  digitalWrite(openLed, LOW);
    //EEPROM.write(0, 0);
   // EEPROM.commit();
   // ESP.restart();
  }
}
void rfControl()
{
  int value = mySwitch.getReceivedValue();
  if (mySwitch.available()) {

    if ((value == 13238370) && (buttonState == 1))
    {
      Serial.println("rf Açılış");

      Kapi_Ac();
      delay(1500);
    }
    if ((value == 13238372) && (buttonState == 0))
    {
      Serial.println("rf Kapanış");

      Kapi_Kapat();
      delay(1500);
    }
    else
    {
      Serial.print("İşlem Tekrarı. ");
      Serial.println(mySwitch.getReceivedValue());
    };
    mySwitch.resetAvailable();
  }
}


void Kapi_Kapat()
{
  WiFiClient client = server.available();
  //digitalWrite(openLed, HIGH);
  for (int i = 0; i < 2; i++) // Buzzer için 2 defa dönülüyor
  {
    digitalWrite(buzzerPin, HIGH); // Buzzer açılıyor
    delay(200); // 0.2 sn bekleniyor
    digitalWrite(buzzerPin, LOW); // Buzzer kapatılıyor
    delay(200); // 0.2 sn bekleniyor
  }
  Serial.println(EEPROM.read(0));
  myservo.attach(4);//D2
  myservo.write(-100);
  client.print("POST /KAPI-KAPALI/ HTTP/1.1");
  delay(2000);
  client.print("POST / HTTP/1.1");
  myservo.detach();
  buttonState = 1;
  EEPROM.write(0, buttonState);
  EEPROM.commit();
 // digitalWrite(openLed, LOW);
}

void Kapi_Ac()
{
 // digitalWrite(closeLed, HIGH);
  WiFiClient client = server.available();
  digitalWrite(buzzerPin, HIGH);
  delay(200);
  digitalWrite(buzzerPin, LOW);
  Serial.println(EEPROM.read(0));
  myservo.attach(4);//D2
  myservo.write(105);
  client.print("POST /KAPI-ACIK/ HTTP/1.1");
  delay(3000);
  myservo.write(91 );
  delay(500);
  myservo.attach(4);//D2
  myservo.write(-110);
  delay(100);
  myservo.detach();
  client.print("POST / HTTP/1.1");
  buttonState = 0;
  EEPROM.write(0, buttonState);
  EEPROM.commit();
  //digitalWrite(closeLed, LOW);
}
 
Bir de yandı dediğiniz kartlarda iki tane diyot göreceksiniz beslemeyi bağladığınız pinlerin orada. Onları ölçer misiniz? Onlardan birisi USB hattından diğeri Vin pininden gelen gerilimi dahili regülatöre iletiyor. Yanan o diyotsa değiştirip kartı onarabilirisniz.
 
NodeMCU'ya gidene takın. Fazladan varsa diğerine de takabilirisiniz.
Sabah ilk işim bu oldu tüm devre ekipmanlarını kurdum programlamasını attım. Wifi üzerinden bağlanmadan butonlar üzerinden kontrol sağladım. Servo 5 denemeden sonra dönerken yavaş ve sallantılı dönmeye başladı. onun için elektiriği kestim.
 
Bir de yandı dediğiniz kartlarda iki tane diyot göreceksiniz beslemeyi bağladığınız pinlerin orada. Onları ölçer misiniz? Onlardan birisi USB hattından diğeri Vin pininden gelen gerilimi dahili regülatöre iletiyor. Yanan o diyotsa değiştirip kartı onarabilirisniz.
VINN pinin hemen altındaki 3.66 volt altındakinde bir deger yok kısa devrede
 
Her ihtimale karşı servonun Data kablosuyla diğer kabloları karıştırmış olabilir misiniz diye bir kontrol edin.
Bir de servo motor takılı değilken test edin. Kart açısından birşey değişmemesi gerekir.
 
Enerji vererek mi ölçtünüz yoksa bu diyotun kırılma voltajı mı?
 
Son düzenleme:

Çevrimiçi personel

Forum istatistikleri

Konular
6,985
Mesajlar
119,312
Üyeler
2,835
Son üye
alpermete

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top