Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Mesajlar - Hasan ERTÜRK

Sayfa: 1 ... 32 33 [34] 35 36 ... 45
496
Arduino kodları:
Kod: [Seç]
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

EthernetClient client;

void setup() {
  IPAddress ipaddr;
  Serial.begin(9600);
  // Bu kontrol Arduino Leonardo için gerekli
   while (!Serial) {
    ;
  }

  // Belirlenen MAC adresi ile ethernet bağlantısını başlatıyoruz
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Ethernet baglanti hatasi!");
    while(1); // Programı burada kilitliyoruz
  }
 
  ipaddr = Ethernet.localIP();
 
  Serial.print("IP Adresi: ");
  Serial.println(ipaddr);
 
}

void loop() {

}

Yukarıdaki kodlarla yeni bir proje oluşturup derliyoruz. Program çalıştırıldığında eğer otomatik ip atamasında bir sorun oluşmadıysa ethernet eklentisine verilen ip adresini serial motitörde görüntüleyebilirsiniz.


497
Uzaktan kontrol / 4. Arduino ethernet kütüphanesinin eklenmesi
« : 25 Haziran 2015, 20:20:48 »
Ethernet kütüphanesini arduinon.cc sitesinden ya da konu ekinden indiriniz. İndirdiğiniz kütüphane klasörünü Library klasörüne attıktan sonra IDE' yi çalıştırabilirsiniz.

498
Uzaktan kontrol / 3. Arduino Ethernet Shield
« : 25 Haziran 2015, 20:12:17 »


Arduino Ethernet Shield, Arduino platformları için hazırlanmış, ethernet üzerinden internete bağlanmanızı sağlar. Wiznet W5100 entegresini üzerinde barındıran bu kart hem TCP hem de UCP ile uyumludur. Arduino Ethernet Shield 4 eş zamanlı soket bağlantısını destekler. Shield üzerindeki standart RJ45 ethernet soketine ethernet kablosunu bağlayarak, Arduino ethernet kütüphanesi ile hızlı bir şekilde Arduino'yu internete bağlayabilirsiniz.

Kart üzerinde SD kart yuvası vardır. Bu sayede çeşitli bilgileri SD kart üzerine yazabilir ve okuyabilirsiniz. Bunun için Arduino Uno ve Mega ethernet kütüphanelerini kullanabilirsiniz.

Arduino, Ethernet Shield işlemcisi olan Wiznet W5100 ile ve SD kart SPI hattı üzerinden haberleşmektedir. Bu pinler UNO'da 11,12 ve 13, MEGA'da 50,51 ve 52. pinlerdir. Her iki modelde de 10. pin W5100'ün, 4. pin ise SD kartın seçim pinidir. Bu pinler genel giriş çıkış pini olarak kullanılmazlar. Arduino MEGA'da donanımsal SS pini (53. pin) SD kart yada W5100 için kullanılmamaktadır. Fakat bu pin mutlaka çıkış pini olarak ayarlanmalıdır.

MAC Adresi Bulma:
Arduino ethernet kartları versiyonuna göre iki farklı Mac adresi ile gelebiliyor. Bu Mac adresleri:  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 veya 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED şeklindedir. Doğru Mac adresini bulmak için Arduino ethernet kütüphanesindeki DHCPAddressPrinter kodunu kullanabilirsiniz. Ethernet kartına ethernet kablosunu taktıktan sonra koddaki Mac adresini düzenleyerek Arduino' ya kodu atınız. Serial Monitor' ü açıp bir süre bekledikten sonra ethernet kartının modeminizden aldığı İP adresi ekrana gelmesi gerekmektedir. Eğer "Failed to configure Ethernet using DHCP" uyarısını alırsanız diğer Mac adresini yazıp tekrar deneyiniz. Sorunsuz çalışması gerekmektedir. Eğer hala çalışmıyorsa ağınızda Mac filtreleme olmadığına emin olunuz.

499
Arduino ve LM35 sıcaklık sensörü ile yapacağımız bu uygulamada ortam sıcaklığını bilgisayarımızda kayıt altına altına alacağız. Sistem ortam sıcaklığını 5'şer saniye aralıklarla ölçmekte ve kayıt altına almaktadır.

Kayıt ekranını görüntülemek için arduino programında araçlar menüsünden seri port ekranını açınız.

Devre şeması:


Ekran alıntısı:


Arduino kodları:
Kod: [Seç]
//initializes/defines the output pin of the LM35 temperature sensor
int outputpin= 0;
//this sets the ground pin to LOW and the input voltage pin to high
void setup()
{
Serial.begin(9600);
}

//main loop
void loop()
{
int rawvoltage= analogRead(outputpin);
float millivolts= (rawvoltage/1024.0) * 5000;
float celsius= millivolts/10;
Serial.print(celsius);
Serial.print(" degrees Celsius, ");

Serial.print((celsius * 9)/5 + 32);
Serial.println(" degrees Fahrenheit");
delay(5000);

}

500
Röle uygulamaları / 3. Arduino ile rölenin on off kontrolü
« : 20 Haziran 2015, 18:34:22 »
Butona basıldığında röle çeker. Butona tekrar basıldığında röle bırakır.


Arduino kodu:
Kod: [Seç]
/* sketch
turn on a fan using a relay and a button
*/
int pinButton = 8;
int Relay = 2;
int stateRelay = LOW;
int stateButton;
int previous = LOW;
long time = 0;
long debounce = 500;
 
void setup() {
  pinMode(pinButton, INPUT);
  pinMode(Relay, OUTPUT);
}
 
void loop() {
  stateButton = digitalRead(pinButton); 
  if(stateButton == HIGH && previous == LOW && millis() - time > debounce) {
    if(stateRelay == HIGH){
      stateRelay = LOW;
    } else {
       stateRelay = HIGH;
    }
    time = millis();
  }
  digitalWrite(Relay, stateRelay);
  previous == stateButton;
}

501
Röle uygulamaları / 2. Arduino ile turn-off zamanlayıcı
« : 20 Haziran 2015, 18:15:15 »
Butona basıldığında lamba 5 sn süre ile yanar ve kendiliğinden söner.

Arduino kodu:
Kod: [Seç]
int pinButton = 8;
int Relay = 2;
int stateRelay = LOW;
int stateButton;
int previous = LOW;
long time = 0;
long debounce = 500;
int stayON = 5000; //stay on for 5000 ms
 
void setup() {
  pinMode(pinButton, INPUT);
  pinMode(Relay, OUTPUT);
}
 
void loop() {
  stateButton = digitalRead(pinButton); 
  if(stateButton == HIGH && previous == LOW && millis() - time > debounce) {
    if(stateRelay == HIGH){
      digitalWrite(Relay, LOW);
    } else {
       digitalWrite(Relay, HIGH);
       delay(stayON);
       digitalWrite(Relay, LOW);
    }
    time = millis();
  }
  previous == stateButton;
}

502
Bu konumuzda arduino üzerinden usb ile 8 röleyi aç kapa yapabilen bir shild tasarlayıp çalıştıracağız.

Devrenin bitmiş hali:


ISIS Devre şeması:


ARES Baskı devresi



ARES animasyon:



Processing kodu:
Kod: [Seç]
import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Serial seriPort;
void setup() {
  size(400, 100);
  cp5 = new ControlP5(this); // Kontrol nesnesini oluştur
  seriPort = new Serial(this, "COM9", 9600); //seri port nesnesini oluştur
  // Toggle Nesnelerini oluşturuyoruz
  cp5.addToggle("relay1") // Röle1 ismini veriyoruz
    .setPosition(10, 40) // nesnenin konumu
      .setSize(30, 15) // nesnenin boyutu (en,boy)
        .setValue(false) // başlangıç durumu (false)
          .setMode(ControlP5.SWITCH) // anahtar görünümü
            ;

  cp5.addToggle("relay2")
    .setPosition(60, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("relay3")
    .setPosition(110, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("relay4")
    .setPosition(160, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("relay5")
    .setPosition(210, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;
  cp5.addToggle("relay6")
    .setPosition(260, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;       
  cp5.addToggle("relay7")
    .setPosition(310, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ; 
  cp5.addToggle("relay8")
    .setPosition(360, 40)
      .setSize(30, 15)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;   
  background(0); //arkaplan siyah
}

void draw() {
}
void relay1(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('A');
    println("Röle 1 çekti");
  }
  else {
    seriPort.write('B');
    println("Röle 1 bıraktı");
  }
}

void relay2(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('C');
    println("Röle 2 çekti");
  }
  else {
    seriPort.write('D');
    println("Röle 2 bıraktı");
  }
}

void relay3(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('E');
    println("Röle 3 çekti");
  }
  else {
    seriPort.write('F');
    println("Röle 3 bıraktı");
  }
}

void relay4(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('G');
    println("Röle 4 çekti");
  }
  else {
    seriPort.write('H');
    println("Röle 4 bıraktı");
  }
}
void relay5(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('I');
    println("Röle 5 çekti");
  }
  else {
    seriPort.write('K');
    println("Röle 5 bıraktı");
  }
}
void relay6(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('L');
    println("Röle 6 çekti");
  }
  else {
    seriPort.write('M');
    println("Röle 6 bıraktı");
  }
}
void relay7(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('N');
    println("Röle 7 çekti");
  }
  else {
    seriPort.write('O');
    println("Röle 7 bıraktı");
  }
}
void relay8(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('P');
    println("Röle 8 çekti");
  }
  else {
    seriPort.write('R');
    println("Röle 8 bıraktı");
  }
}


Arduino kodu:
Kod: [Seç]
int relay[] = {
 6,7,8,9,10,11,12,13};
char gelenVeri;
void setup()
{
  pinMode(relay[0],OUTPUT);
  pinMode(relay[1],OUTPUT);
  pinMode(relay[2],OUTPUT);
  pinMode(relay[3],OUTPUT);
  pinMode(relay[4],OUTPUT);
  pinMode(relay[5],OUTPUT);
  pinMode(relay[6],OUTPUT);
  pinMode(relay[7],OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  while(Serial.available()>0)
  {
    gelenVeri = Serial.read();
    switch(gelenVeri)
    {
    case 'A':
      digitalWrite(relay[0],HIGH);
      break;
    case 'B':
      digitalWrite(relay[0],LOW);
      break;
    case 'C':
      digitalWrite(relay[1],HIGH);
      break;
    case 'D':
      digitalWrite(relay[1],LOW);
      break;
    case 'E':
      digitalWrite(relay[2],HIGH);
      break;
    case 'F':
      digitalWrite(relay[2],LOW);
      break;
    case 'G':
      digitalWrite(relay[3],HIGH);
      break;
    case 'H':
      digitalWrite(relay[3],LOW);

    case 'I':
      digitalWrite(relay[4],HIGH);
      break;
    case 'K':
      digitalWrite(relay[4],LOW);

    case 'L':
      digitalWrite(relay[5],HIGH);
      break;
    case 'M':
      digitalWrite(relay[5],LOW);
    case 'N':
      digitalWrite(relay[6],HIGH);
      break;
    case 'O':
      digitalWrite(relay[6],LOW);
    case 'P':
      digitalWrite(relay[7],HIGH);
      break;
    case 'R':
      digitalWrite(relay[7],LOW);     

    }
  }
}




503
Arduino Genel / 5. Arese arduino uno3 shild paketi eklemek
« : 16 Haziran 2015, 03:10:42 »
Ekteki ares dosyası ile proteus ares programına taslak arduino uno3 shild paketi ekleyebilirsiniz.

504
Arduino Genel / 4. Proteusta arduino simülasyonu yapmak
« : 16 Haziran 2015, 02:45:14 »
Arduinonun Uno ve Mega Modelleri ile yapacağınız çalışmalarda devreyi bilgisayar ortamında simüle ederek gözlemlemek için aşağıdaki işlem basamaklarını sırayla uygulayarak sonuca ulaşabilirsiniz.

1. Ekteki sıkıştırılmış klasörden çıkan ARDUINO.LIB isimli dosyayı C:\Program Files\Labcenter Electronics\Proteus 7 Professional\LIBRARY dizinine taşıyınız.

2. Artık proteosu açıp P butonuna basıp arama kutusuna arduino yazınca arduino modelleri listelenecektir. Buradan çalışma sayfanıza arduinoyu ekleyebilirsiniz.



3. Daha sonra isis programında aşağıda görüldüğü gibi arduino ile bir flaşör led devresi çizelim.



4. Sıra geldi arduino programını yazmaya.
Kodlarımız:
Kod: [Seç]
void setup() {
  // Burada 13. dijital pini cikis olarak atiyoruz.
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH);   // 13. pindeki ledi yaktik
  delay(200);              // 200 ms bekle
  digitalWrite(13, LOW);    // 13. pindeki ledi sondurduk
  delay(200);              // 200 ms bekle
}

5. Şimdi de isise programa ait hex dosyasının yolunu göstermeye. Aşağıdaki resimde görüldüğü gibi dosya menüsünde tercihlere tıklayarak açılan pencerede 2 kutucuğa tık koyup programı derliyoruz.



6. Program derlendikten sonra hex dosyasının konumu program penceresinin altındaki açıklama bölümünde görünecektir. Bu yolu koplayıp dosyamıza ulaşıyoruz ve masa üstüne kopyalıyoruz.



7. isis programında arduinoya çift tıklayıp masa üstünden hex dosyamızı çağırdığımızda devremiz simülasyona hazır hale geliyor.

 


505
Arduino ve Processing / 4. Mouse ile led kontrol
« : 13 Haziran 2015, 21:01:40 »
<iframe width="640" height="385" src="//www.youtube.com/embed/i_NTYyME8Qk?fs=1&start=" frameborder="0" allowfullscreen></iframe>

Devre Bağlantısı:


Arduino kodu:
Kod: [Seç]
/* This program was created by ScottC on 9/5/2012 to receive serial
signals from a computer to turn on/off  1-9 LEDs */

void setup() {               
  // initialize the digital pins as an output.
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
// Turn the Serial Protocol ON
  Serial.begin(9600);
}

void loop() {
  byte byteRead;

   /*  check if data has been sent from the computer: */
  if (Serial.available()) {
 
    /* read the most recent byte */
    byteRead = Serial.read();
    //You have to subtract '0' from the read Byte to convert from text to a number.
    byteRead=byteRead-'0';
   
    //Turn off all LEDS
    for(int i=2; i<11; i++){
      digitalWrite(i, LOW);
    }
   
    if(byteRead>0){
      //Turn on the relevant LEDs
      for(int i=1; i<(byteRead+1); i++){
        digitalWrite(i+1, HIGH);
      }
    }
  }
}

Processing kodu:
Kod: [Seç]
//Created by ScottC on 12/05/2012 to send mouse coordinates to Arduino

import processing.serial.*;

// Global variables
int new_sX, old_sX;
int nX, nY;
Serial myPort;

// Setup the Processing Canvas
void setup(){
  size( 800, 400 );
  strokeWeight( 10 );
 
  //Open the serial port for communication with the Arduino
  //Make sure the COM port is correct
  myPort = new Serial(this, "COM9", 9600);
  myPort.bufferUntil('\n');
}

// Draw the Window on the computer screen
void draw(){
 
  // Fill canvas grey
  background( 100 );
   
  // Set the stroke colour to white
  stroke(255);
 
  // Draw a circle at the mouse location
  ellipse( nX, nY, 10, 10 );

  //Draw Line from the top of the page to the bottom of the page
  //in line with the mouse.
  line(nX,0,nX,height); 
}


// Get the new mouse location and send it to the arduino
void mouseMoved(){
  nX = mouseX;
  nY = mouseY;
 
  //map the mouse x coordinates to the LEDs on the Arduino.
  new_sX=(int)map(nX,0,800,0,10);

  if(new_sX==old_sX){
    //do nothing
  } else {
    //only send values to the Arduino when the new X coordinates are different.
    old_sX = new_sX;
    myPort.write(""+new_sX);
  }
}

506
Led ve Buton uygulamaları / 3. Arduino ile RGB Led Kontrolü
« : 11 Haziran 2015, 20:07:51 »
Processing arayüzünü kullanarak tüm renkleri tek led ile elde edebiliyoruz.


Devre Şeması:


Processing kodu:
Kod: [Seç]
/**
 * Processing Örneği - 4
 * Processing ver ControlP5 Kütüphanesi ile
 * RGB LED Kontrolü
 */

import controlP5.*;
import processing.serial.*;

ControlP5 controlP5;
Serial seriPort;
ColorPicker cp; // Renj seçim nesnesi

int kirmiziDeger;
int yesilDeger;
int maviDeger;

void setup() {
  size(400, 100);
  controlP5 = new ControlP5(this);
  cp = controlP5.addColorPicker("renkSecici", 0, 0, 255, 20); 
  seriPort = new Serial(this, "COM7", 9600);
}

void draw() {
  background(cp.getColorValue()); // Arka plan rengini değiştir
  /*
   Renk seçici nesnesindek rengin kırmızı,yeşil ve 
   mavi bileşenlerini ayırıp ilgili değişkenlere atıyoruz
   */
  kirmiziDeger = int(red(cp.getColorValue()));
  yesilDeger = int(green(cp.getColorValue()));
  maviDeger = int(blue(cp.getColorValue())); 
  delay(50);
}

/* Renk seçideki değerler değiştiğinde
 otomatik olarak çağırılan fonksiyon ile
 renk değerlerini konsola yazdırıyoruz
 */
void renkSecici(int renk) {
  println("KIRMIZI "+kirmiziDeger + " YESIL "+yesilDeger + " MAVI "+maviDeger);
  RenkGonder();
}

/* Renk değerleri,
 önce R karakter sonrasında kırmızı,yeşil,mavi
 sırasıyla gönderiliyor
 */
void RenkGonder()
{
  seriPort.write('R');
  seriPort.write(kirmiziDeger);
  seriPort.write(yesilDeger);
  seriPort.write(maviDeger);
}

Arduino kodu:
Kod: [Seç]
/*
 * Processing Örneği - 4
 * Processing ver ControlP5 Kütüphanesi ile
 * RGB LED Kontrolü   
 */

// LED bağlantı pinleri
const int kirmiziPin = 11;  // kırmızı
const int yesilPin = 10; // yeşil
const int maviPin = 9; // mavi

int kirmizi=0, yesil=0, mavi=0; // renk değerleri
int durum = 1; // gelen verileri işlemede kullanılacak
byte gelen = 0;

void setup()
{
  Serial.begin(9600);

}

void loop()
{
  while(Serial.available()>0)
  {
    /*
     Gelen veriler işleniyor
     R karakteri geldikten sonra sırasıyla
     kirmizi,yeşil ve mavi baytları okunuyor.
     */
    gelen = Serial.read();
    switch(durum)
    {
    case 1:
      if(gelen == 'R'){
        durum = 2;
      }
      break;

    case 2:
      kirmizi = gelen;
      durum = 3;     
      break;

    case 3:
      yesil = gelen;
      durum = 4;
      break;

    case 4:
      mavi = gelen;
      durum = 1;
      break;
    }
  }

  // Ortak anot için
  analogWrite(kirmiziPin, 255 - kirmizi);
  analogWrite(yesilPin, 255 - yesil);
  analogWrite(maviPin, 255 - mavi);

  // Ortak katot için
  /*
   analogWrite(rpin, r);
   analogWrite(gpin, g);
   analogWrite(bpin, b);
   */
  delay(20);
}
Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.

507
Devre şeması:


Program arayüzü:



Processing kodu:
Kod: [Seç]
import controlP5.*;

/*
  Processing Örneği - 3
 Processing ile Seriport üzerinden
 LED Kontrolü
 
 4 toggle nesnesi ile Arduino'ya
 bağlı olan 4 adet LED kontrol ediliyor
 
 ControlP5 kütüphanesindeki Toggle kontrolleri
 kullanılıyor
 */


import controlP5.*;
import processing.serial.*;

ControlP5 cp5;
Serial seriPort;

void setup() {
  size(420, 100);

  cp5 = new ControlP5(this); // Kontrol nesnesini oluştur
  seriPort = new Serial(this, "COM2", 9600); //seri port nesnesini oluştur

  // Toggle Nesnelerini oluşturuyoruz
  cp5.addToggle("led1") // led1 ismini veriyoruz
    .setPosition(40, 40) // nesnenin konumu
      .setSize(50, 20) // nesnenin boyutu (en,boy)
        .setValue(false) // başlangıç durumu (false)
          .setMode(ControlP5.SWITCH) // anahtar görünümü
            ;

  cp5.addToggle("led2")
    .setPosition(140, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("led3")
    .setPosition(240, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("led4")
    .setPosition(340, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("led5")
    .setPosition(440, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;
  background(0); //arkaplan siyah
}

void draw() {
}
/* led1 toggle nesnesin tıklandığında çağırılacak olan fonksiyon
 gelen bayrağın durumuna göre (true / false) ilgili veri
 seri haberleşme üzerinden gönderiliyor
 */
void led1(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('A');
    println("LED-1 yakıldı");
  }
  else {
    seriPort.write('B');
    println("LED-1 söndürüldü");
  }
}

void led2(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('C');
    println("LED-2 yakıldı");
  }
  else {
    seriPort.write('D');
    println("LED-2 söndürüldü");
  }
}

void led3(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('E');
    println("LED-3 yakıldı");
  }
  else {
    seriPort.write('F');
    println("LED-3 söndürüldü");
  }
}

void led4(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('G');
    println("LED-4 yakıldı");
  }
  else {
    seriPort.write('H');
    println("LED-4 söndürüldü");
  }
}

Arduino kodu:
Kod: [Seç]
/*
 Processing Örneği - 3
 Processing üzerinden gelen verilerle
 4 adet LED Kontrol ediliyor
 */

// LED bağlatı pinleri
int ledler[] = {
  8,9,10,11};
char gelenVeri;
void setup()
{
  pinMode(ledler[0],OUTPUT);
  pinMode(ledler[1],OUTPUT);
  pinMode(ledler[2],OUTPUT);
  pinMode(ledler[3],OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  while(Serial.available()>0)
  {
    gelenVeri = Serial.read();
    switch(gelenVeri)
    {
    case 'A':
      digitalWrite(ledler[0],HIGH);
      break;
    case 'B':
      digitalWrite(ledler[0],LOW);
      break;
    case 'C':
      digitalWrite(ledler[1],HIGH);
      break;
    case 'D':
      digitalWrite(ledler[1],LOW);
      break;
    case 'E':
      digitalWrite(ledler[2],HIGH);
      break;
    case 'F':
      digitalWrite(ledler[2],LOW);
      break;
    case 'G':
      digitalWrite(ledler[3],HIGH);
      break;
    case 'H':
      digitalWrite(ledler[3],LOW);
    }
  }
}


Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.

508
Uzaktan kontrol / 1. Bilgisayar üzerinden röle kontrolü
« : 09 Haziran 2015, 23:55:59 »
<iframe width="640" height="385" src="//www.youtube.com/embed/CKiH-5w040g?fs=1&start=" frameborder="0" allowfullscreen></iframe>



Processing ve arduino ikilisi ile bilgisayarımız üzerinden bir röleyi kontrol edeceğiz. Processing arayüzünde oluşturduğumuz bir butonla ledi yakıp söndürüyoruz. Konu ile ilgili dosyalar konu ekinde mevcuttur.

Devre şeması:


Processing programı:
Kod: [Seç]
import processing.serial.*;

// Köşe koordinatları
float x = 50;
float y = 25;
float w = 75;
float h = 40;

Serial seriPort;
boolean button = false;

void setup(){
 size(175,100);
 background(#ffffff);
 stroke(0);
 noFill();
 seriPort = new Serial(this,"COM8",9600); // Seri haberleşmeyi açıyoruz (9600 baud)
}
void draw() {
  if (button) {
    fill(#FF0000);
    stroke(0);
   
  } else {
    fill(#00FF00);
    stroke(#000000);

  }
  /* sol üst köşesi (x,y) noktasında olan ve uzun kenarı w,
    kısa kendarı h genişliğinde bir dikdörtgen çizdiriyoruz */
  rect(x,y,w,h);
  fill(0x123456); 
}

/*
Fare butonuna basıldığında bu fonksiyon çağırılıyor.
Eğer butona basılan koordinat butonun köşe koordinatları
içerisinde ise buton durumunu değiştiriyoruz.

MouseX butona basılan koordinatın X bileşeni
MouseY butona basılan koordinatın Y bileşeni
*/
 
void mousePressed() {
  if (mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) {
    if(button)
    {
      seriPort.write('H');
    }
    else
    {
      seriPort.write('L');
    }   
    button = !button; // buton değişkenini tersine çevir   
  } 
}

Arduino programı:

Kod: [Seç]
import processing.serial.*;

// Köşe koordinatları
float x = 50;
float y = 25;
float w = 75;
float h = 40;

Serial seriPort;
boolean button = false;

void setup(){
 size(175,100);
 background(#ffffff);
 stroke(0);
 noFill();
 seriPort = new Serial(this,"COM8",9600); // Seri haberleşmeyi açıyoruz (9600 baud)
}
void draw() {
  if (button) {
    fill(#FF0000);
    stroke(0);
   
  } else {
    fill(#00FF00);
    stroke(#000000);

  }
  /* sol üst köşesi (x,y) noktasında olan ve uzun kenarı w,
    kısa kendarı h genişliğinde bir dikdörtgen çizdiriyoruz */
  rect(x,y,w,h);
  fill(0x123456); 
}

/*
Fare butonuna basıldığında bu fonksiyon çağırılıyor.
Eğer butona basılan koordinat butonun köşe koordinatları
içerisinde ise buton durumunu değiştiriyoruz.

MouseX butona basılan koordinatın X bileşeni
MouseY butona basılan koordinatın Y bileşeni
*/
 
void mousePressed() {
  if (mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) {
    if(button)
    {
      seriPort.write('H');
    }
    else
    {
      seriPort.write('L');
    }   
    button = !button; // buton değişkenini tersine çevir   
  } 
}
Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.

509
Bir ledin 100'er ms aralıkla yanıp sönmesi isteniyor.
Bu işlemi yapabilmek için izlememiz gereken işlem basamakları şöyle:
1. Arduino ile pc arasındaki bağlantı usb kablodu ile yapılır.
2. Arduino programı çalıştırılır ve araçlar menüsünden kart arduino uno olarak seçilir.
3. Yine araçlar menüsünden arduinonun bağlı olduğu port seçilir. Com1, Com7 gibi. Bu işlemi doğru olarak yapmamız gerekmekte. Aksi halde yazdığımız programı arduinoya aktarmak mümkün olmaz. Hangi com olduğunu anlamak için bilgisayar > özellikler > aygıt yöneticisi > bağlantı noktaları /com ve lpt) seçeneği altında listelenen arduino uno yazısının yanında bulunan com numarasına bakabilirsiniz.
Program kodlarımız:
Kod: [Seç]
void setup() {
  // Burada 13. dijital pini cikis olarak atiyoruz.
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH);   // 13. pindeki ledi yaktik
  delay(200);              // 200 ms bekle
  digitalWrite(13, LOW);    // 13. pindeki ledi sondurduk
  delay(200);              // 200 ms bekle
}
Buradaki kodları tanıyalım:
pinMode
Arduino portları giriş ya da çıkış olarak tanımlanabilir. Bunun için pinMode kodu kullanılır.   pinMode(13, OUTPUT); yazmakla 13 nolu pini çıkış olarak atadık.

loop
Döngü anlamındadır. void loop kodundan sonra açılan süslü parantezle bu parantezin kapandığı yere kadar olan program sürekli tekrarlanır.

digitalWrite
Çıkışın aktif ya da pasif olmasını bu kodla sağlarız. digitalWrite(13, HIGH);  yazmakla 13. pini aktif, digitalWrite(13, LOW); yazmakla pasif yaparız.

delay
Programın her hangi bir yerine bunu yazdığımızda program burada beklemeye geçer. Örneğimizde  delay(200); yazmakla ledimizin yandıktan ve söndükten sonra 200'er ms yanık ya da sönük kalmasını sağladık.


4. Derleme butonuna basarak kodları derliyoruz.

5. Yükle butonuna basarak derlediğimiz programı arduinoya gönderiyoruz.

6. Kaydet butonuna basarak da projemizi bilgisayarımızda istediğimiz bir dizine kaydediyoruz.

İşlem basamakları tamamlandı. 13 nolu pine bağlı olan pindeki ledin yanık söndüğünü izleyebiliriz.

Bu anlatıma ait arduino dosyası ekte mevcuttur.

Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.

510
Arduino Unoyu programlamak için Arduino programını arduino.cc sitesinden indirmeniz gerekir. Programı indirip arduino.exe dosyasını çalıştırdıktan sonra Tools > Board menüsünden Arduino Unoyu seçiniz.





Arduino Uno üzerindeki ATmega328 e önceden bir bootloader yüklenmiştir. Bu bootloader sayesinde Arduino 'yu programlamanız için harici bir programlayıcı donanımına ihtiyacınız olmaz. Orjinal STK500 programını kullanarak haberleşir.

Ayrıca Arduino ISP kullanarak Arduino 'nun bootloader 'ını devre dışı bırakabilir ve mikrodenetleyiciyi ICSP (In Circuit Serial Programming) pini üzerinden programlayabilirsiniz.

Arduino IDE ‘ yi kurduğumuza ve programlama arayüzüne eriştiğimize göre şimdi sıra “Arduino UNO” kartımızı bilgisayarımıza tanıtmaya geldi. Bunun için;
1-Arduino kartımızı USB kablomuz ile bilgisayarımıza bağlıyoruz. Karşımıza ilk olarak ” Windows Yeni Donanım Bulma Sihirbazı” çıkacak. Burada ” Windows yazılım aramak için Windows Update sitesine bağlanabilir mi?” sorusuna ” Hayır, bu kez değil” seçeneğini seçerek devam ediyoruz.
2-Yeni sayfada karşımıza çıkacak seçeneklerden bu kez “Listeden ya da belirli bir konumdan yükle (Gelişmiş)” seçeneğini seçiyoruz ve ilerliyoruz.
3-Diğer sayfada “Bu konumlarda en iyi sürücüyü ara” seçeneğini seçip, “Arama şu konumu da içersin:”  bölümünü işaretliyoruz ve ardından “Gözat” butonuna basarak daha önceden indirmiş olduğumuz arduino klasörünün içindeki “drivers” klasörünü seçiyoruz. (Ör: C:\arduino-1.04\drivers)
4-Ardından karşımıza çıkan listeden Arduino UNO’ya ait sürücü bilgisini içeren “Arduino UNO” yu seçiyoruz ve ilerliyoruz.
5-Bu aşamada karşımıza bir uyarı penceresi çıkabilir. Buna “Devam et” diyoruz.
6-Dosyaların yüklenmesi bittikten sonra “Son” butonuna basıp yüklememizi tamamlıyoruz. Şu anda Arduino UNO sürücümüz kullanıma hazırdır.

Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.

Not: smd chipler için kurulum dosyası ektemevcut.

Sayfa: 1 ... 32 33 [34] 35 36 ... 45