servo

Arduino ile Network Üzerinden Servo Kontrolü Nasıl Yapılır

Network üzerinden webserver oluşturarak arduinonuz ile kontrol etmek istediğiniz herhangi bir şeyin kontrolü mümkündür. Hatta Networkünüz wireless ise o zaman telefon üzerinden kontrol dahi mümkün. Tabiki bunun için arduinonuz için tasarlanmış bir network kartı almanız gerekmekte yurtdışı fiyatı 4-10 dolar civarı. Hemen sipariş etmenizi öneririm çünkü çok kullanışlıdır.

 

Yapacağınız herhangi bir projede  network desteği ihtiyacınızı karşılayacaktır.

Burada anlatmak istediğim daha önceki yazılarımızda ethernet üzerinden LED kontrolünü mümkün kılmıştı şimdi ise buna ek olarak LED ve Servo motor kontrolünü ele alalım.

servo led

(resimleri instructabledan aldım)

İhtiyacımız olan malzemeler

1. Arduino Uno yada MEGA

1. ethernet Wiznet5100 yada enc28j60

1. LED

1. Servo Motor

Arduinomuzla webserver oluşturacağız ve bu webservera IP adresi ile bağlandığımızda 4 buton ile karşılaşacağız. ilk ikisi LED açıp kapama diğer ikisi ise Servo motoru sağa ve sola çevirme olsun . Webser IP adresini girdiğimiz zaman bizi şu şekilde bir sayfa karşılar artık kontrol size kalmış.Nerelerde kullanılabilir sorusuna gelince. Şu resime bakmanızı öneririm

multi servo complete

Bu projenin internet üzerinden kontrolü sayesinde çok kullanışlı bir projeye dönüştürebilirsiniz.

 

ethernet servo LED2

Programı yükledikten sonra işlem tamam .

Programımız

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
int led = 4;
Servo microservo;
int pos = 0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac addresi
byte ip[] = { 192, 168, 1, 178 }; // ip in lan 
byte gateway[] = { 192, 168, 1, 1 }; // internet bağlantı noktası
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
String readString;
 
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
pinMode(led, OUTPUT);
microservo.attach(7);
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("server ip adresi ");
Serial.println(Ethernet.localIP());
}
 
 
void loop() {
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
 
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
 

if (c == '\n') {
Serial.println(readString); 
 
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("<TITLE>Arduino ile Servo Kontrolü</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("
<H1>Arduino ile Servo Kontrolü</H1>

");
client.println("
<hr />

");
client.println("
");
client.println("
<H2>Arduino Ethernet Shield</H2>

");
client.println("
");
client.println("<a href=\"/?button1on\"\">Turn On LED</a>");
client.println("<a href=\"/?button1off\"\">Turn Off LED</a>
");
client.println("
");
client.println("
");
client.println("<a href=\"/?button2on\"\">Rotate Left</a>");
client.println("<a href=\"/?button2off\"\">Rotate Right</a>
");
 
client.println("
");
client.println("</BODY>");
client.println("</HTML>");
 
delay(1);
client.stop();
if (readString.indexOf("?button1on") >0){
digitalWrite(led, HIGH);
}
if (readString.indexOf("?button1off") >0){
digitalWrite(led, LOW);
}
if (readString.indexOf("?button2on") >0){
for(pos = 0; pos < 180; pos += 3)  { 
microservo.write(pos); 
delay(15); 
} } if (readString.indexOf("?button2off") >0){
for(pos = 180; pos>=1; pos-=3) 
{
microservo.write(pos); 
delay(15); 
}
}
readString="";
 
}
}
}
}
}

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.