Wifi esp8266 Step Motor Kontrolü

Yeni bir step motor kontrol uygulaması ile karşınızdayız. Bu sefer cep telefonundan step motorumuzu kontrol edeceğiz. Oldukça yaygın olarak kullanılan ESP8266 wifi çipini kullanacağız. Her zaman olduğu gibi kodlar ve şema dahil tamamen açık kaynaklı bir proje yapıyoruz.

Bu sitede daha birçok esp8266 çipi ile yapılmış uygulamaları bulabilirsiniz.

Devre Şeması

Kodlar

#include <ESP8266WiFi.h>
 
const char* ssid = "wifi adınız";
const char* password = "şifreniz";
 
const int stepPin = 13 ;
const int dirPin = 12;


WiFiServer server(80);
 
void setup() {
Serial.begin(115200);
delay(10);
 
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT); 
 
Serial.println();
Serial.println();
Serial.print("Baglaniyor");
Serial.println(ssid);
 
WiFi.begin(ssid, password);
 
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi bagli");
 
 
server.begin();
Serial.println("Server Baslatildi");
 
 
Serial.print("Baglanmak icin bu URL'yi kullanin: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
 
}
 
void loop() {
  
  
 WiFiClient client = server.available();
if (!client) {
return;
}
 
 
Serial.println("Yeni kisi ");
while(!client.available()){
delay(1);
}
 
 
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
 
int value = LOW;
if (request.indexOf("/MOTOR-ILERI") != -1) {
digitalWrite(dirPin, HIGH);
 
for(int i = 0 ; i<100;i++){

    digitalWrite(stepPin,HIGH);
    delayMicroseconds(1500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(1500);
  }
value = HIGH;
}
if (request.indexOf("/MOTOR-GERI") != -1) {
digitalWrite(dirPin, LOW);
 
for(int i = 0 ; i<100;i++){

    digitalWrite(stepPin,HIGH);
    delayMicroseconds(1500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(1500);
  }
value = LOW;
}
 
 
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); 
client.println("<!DOCTYPE HTML>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
client.println(".button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;");
client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
client.println(".button2 {background-color: #77878A;}</style></head>");
            
 
client.println("<body><h1>ESP8266 MOTOR KONROL</h1>");
client.println("<html>");
 

client.println("");

client.println("<a href=\"/MOTOR-ILERI\"><button class=\"button\">Ileri</button></a>");

client.println("<a href=\"/MOTOR-GERI\"><button class=\"button button2\">Geri</button></a>"); 
client.println("</html>");
client.println("<br>");
client.println("<br>");
delay(1);
client.print("<h3>Motor :</h3>");
 
if(value == HIGH) {
client.print("<h3>Ileriye döndü</h3>");
} else {
client.print("<h3>Geriye döndü</h3>");
}
Serial.println("Client disonnected");
Serial.println("");
 

}

Step Motor Hız Kontrolü

Step motorlarla ilgili yaptığımız açık kaynaklı bazı çalışmaları buradan paylaşmak istedim. Videolarda Can Kurt arkadaşımızın yardımları için teşekkür ediyorum. Siz de projelerimizde bize yardımcı olmak isterseniz birlikte birşeyler öğrenebiliriz.

Bu çalışmada step motorun hızını bir potansiyometre ile kontrol ediyoruz. Başrolde elbetteki Arduino var. Devre şeması kurulum ve kaynak kodları bu sayfada bulabilirsiniz.

Devre Şeması

Kodlar

const int stepPin = 9;
const int dirPin = 8; 


void setup() {
   pinMode(stepPin,OUTPUT);
   pinMode(dirPin,OUTPUT);
   digitalWrite(dirPin,HIGH); 
}

void loop() {
   int customDelay = map(analogRead(A0),0,1023,400,1300);
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(customDelay);
   digitalWrite(stepPin, LOW);
   delayMicroseconds(customDelay);
 }

Çocuklarla 3D Yazıcı

Bugün ODTÜ Geliştirme Vakfı Özel Okulundaydım. Sevgili Murat Hoca beni çocuklarla bir workshop yapmaya davet etmişti. Bugün elimden geldiği, dilimin döndüğünce 7-8. sınıf öğrencilerine 3D yazıcı temel kavramları ve çalışma prensibi ile ilgili bilgiler verdim. Sorulan ilginç sorular ve çocukların ilgisi beni şaşırttı ve aynı derecede mutlu etti. Böyle yetişen yeni neslin hayal gücünün 3D yazıcılar ile gerçeğe dönüştürülecek olması beni heycanlandırıyor. Yerli, uygun maliyetli yazıcılar ile ülkemin tüm okullarındaki hayal gücünün gerçeğe dönüşmesi için gnexlab olarak çalışmalarımıza devam edeceğiz. Sizin de 3D yazıcılar çook ilginizi çekiyorsa doğru yerdesiniz. Gnexlab’ı takip edin.