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

Son İletiler

Sayfa: [1] 2 3 ... 10
1
Robot uygulamaları / 5. Engelden kaçan robot
« Son İleti Gönderen: Hasan ERTÜRK Dün, 22:28:50 »
Bu projemizde arduino ve Actobotics ActoBitty 2 alt yapısı ile engelden kaçan robot yapacağız.

Seviye:
Orta seviye

<iframe width="640" height="385" src="//www.youtube.com/embed/bIf-HsojC2Y?fs=1&start=" frameborder="0" allowfullscreen></iframe>
Video 1: Engelden kaçan robot


Fotoğraf 1: Engelden kaçan robot


Fotoğraf 2: Engelden kaçan robot


Fotoğraf 3: Engelden kaçan robot


Fotoğraf 4: Engelden kaçan robot


Devre şeması:

Şema 1: Engelden kaçan robot frtitzing devre şeması

Malzeme listesi:

Arduino kodu:
Kod: [Seç]
#include <SharpIR.h>
#define IR A0
#define model 430
SharpIR SharpIR(IR, model);
#define CW  0
#define CCW 1
#define MOTOR_A 0
#define MOTOR_B 1
const byte PWMA = 3; 
const byte PWMB = 11;
const byte DIRA = 12;
const byte DIRB = 13;
void setup()
{
 Serial.begin(9600);
 setupArdumoto();
}
void loop()
{
 int mesafe=SharpIR.distance();
 String distance = String(mesafe);
 Serial.print("mesafe = ");
 Serial.print(mesafe);
 Serial.print(" cm");
 Serial.print("\n");
 delay(10);
 if (mesafe > 5){ileri();} else don();
}
void driveArdumoto(byte motor, byte dir, byte spd)
{
  if (motor == MOTOR_A)
  {
    digitalWrite(DIRA, dir);
    analogWrite(PWMA, spd);
  }
  else if (motor == MOTOR_B)
  {
    digitalWrite(DIRB, dir);
    analogWrite(PWMB, spd);
  } 
}
void stopArdumoto(byte motor)
{
  driveArdumoto(motor, 0, 0);
}
void setupArdumoto()
{
  pinMode(PWMA, OUTPUT);
  pinMode(PWMB, OUTPUT);
  pinMode(DIRA, OUTPUT);
  pinMode(DIRB, OUTPUT);
  digitalWrite(PWMA, LOW);
  digitalWrite(PWMB, LOW);
  digitalWrite(DIRA, LOW);
  digitalWrite(DIRB, LOW);
}
void ileri()
{
 driveArdumoto(MOTOR_A, CW, 75); 
 driveArdumoto(MOTOR_B, CW, 75);
}
void don()
{
 driveArdumoto(MOTOR_A, CW, 75); 
 driveArdumoto(MOTOR_B, CCW, 75);
 delay(750);
}

İhtiyaç duyulması halinde konuya ait dosyaları konu ekinden indirebilirsiniz.

2
Led ve Buton uygulamaları / 15. Neopixelled uygulaması 2
« Son İleti Gönderen: Hasan ERTÜRK 20 Mayıs 2018, 13:04:41 »
34 adet led aşağıdaki videolarda görüldüğü gibi yanar. Aynı devreyi kullanarak farklı kodlamalarla daha farklı ışık efektleri yapabilirsiniz. Devre 6 ile 38 Voltluk dc gerilimle beslenebilir. Besleme gerilimi XL4015 ayarlanabilir DC/DC voltaj regülatörü girişine uygulanmalıdır. Devreye enerji uygulanmadan önce dc kaynağın çıkış voltajı 8,5 Volta ayarlanmalıdır.

<iframe width="640" height="385" src="//www.youtube.com/embed/VlDIaddCsss?fs=1&start=" frameborder="0" allowfullscreen></iframe>
Video 1: Neopixel led uygulaması

<iframe width="640" height="385" src="//www.youtube.com/embed/PZV7pKqVaqk?fs=1&start=" frameborder="0" allowfullscreen></iframe>
Video 2: Neopixel led uygulaması


Fotoğraf 1: Montajı tamamlanmış devre


Şema 1: ARES devre şeması


Şema 2: ARES devre şeması


Şema 3: Fritzing devre şeması

Malzeme listesi:

Arduino kodunu ve ihtiyaç duyulması halinde diğer dosyaları konu ekinden indirebilirsiniz.

Ben yapamam satın almak istiyorum diyenler buraya tıklasın.
3
Elektronik / Ynt: Kopma ile çalışan alarm devresi
« Son İleti Gönderen: Hasan ERTÜRK 15 Mayıs 2018, 07:32:29 »
Bu da 2 ledli olanı.
4
Elektronik / Kopma ile çalışan alarm devresi
« Son İleti Gönderen: Hasan ERTÜRK 13 Mayıs 2018, 21:46:25 »


Tetik isimli swich bir iletkeni temsil etmekte olup, bekleme anında Q1 beyzini şase potansiyelinde tutar. Q1 yalıtımda olduğundan scr tetiklenmez, röle çekmez, led yanmaz.

Kopma olduğunda C1 kondansötörü RV1 ve R4 üzerinden şarz olmaya başlar. Kondansatör uçlarındaki gerilim Q1'i iletime geçirebilecek değere ulaştığında Q1 iletime geçer. Q1'in iletime geçmesi scryi tetikler, röle çeker, led yanar.

Kopan bağlantı tekrar oluşturulsa dahi Q1'in yalıtama geçmesine rağmen tristör reset butonuna dek iletimde kalmaya devam eder.
5
Elektronik / Tek butonla on off
« Son İleti Gönderen: Hasan ERTÜRK 10 Mayıs 2018, 19:39:15 »

<iframe width="640" height="385" src="//www.youtube.com/embed/yT5fq3ZUfzU?fs=1&start=" frameborder="0" allowfullscreen></iframe>
Devreye enerji uygulandığında R3 ve R1 üzerinden beyz polaması alan Q2 iletime geçer, led yanar. Q2’nin iletime geçmesiyle beraber  A noktasındaki gerilim yaklaşık 0 Volta çekilir. A noktasındaki gerilim 0,7  Voltun altında kaldığı için B noktasına bağlı olan C2 kondansatörü maksimum A noktasındaki voltaja kadar şarz olabilir. Dolayısıyla Q1’i iletime geçirebilecek beyz polarması oluşmaz.
Bu arada C1 kondansatörü R3 ve R2 üzerinden besleme gerilimine  şarz olur. Butona basılmasıyla beraber C1 uçlarındaki gerilim C2 yi de besleme gerilime şarz etmekle beraber Q1’in beyz polarmasını sağlar ve Q1 iletime geçer. Bu işlem neticesinde C1, Q1’in beyz emiteri üzerinden deşarz olur. Q1’in iletime geçmesi C noktasındaki gerilimi yaklaşık 0 Volta çeker. C noktasındaki gerilimin 0 Volta düşmesiyle Q2’nin beyz polarması kesilir ve led söner.
R4 ve R6 üzerinden beyz polarması alan Q1 iletimde kalmaya devam eder. C noktasındaki gerilim Q1’in iletimde olması nedeniyle yaklaşık 0 Volttur. Bu nedenle C1 tekrar besleme gerilimine şarz olma imkanı bulamaz.
Butona tekrar basıldığında C1 boş olduğundan C1 uçları ilk anda kısa devre gibi davranacağından B noktasındaki gerimi 0 Volta çeker. Q1 beyz polarması kesilir ve Q1 kesime gider.
R3 ve R1 üzerinden beyz polarması alan Q2 tekrar iletime geçerek başlangıca dönülmüş olur. Butona her basışta anlatılanlar periyodik olarak devam eder.
6
Elektronik / Tristörün durdurulması
« Son İleti Gönderen: Hasan ERTÜRK 09 Mayıs 2018, 20:57:48 »


7
Projeler / Ynt: 11. Arduino ile termostat yapımı
« Son İleti Gönderen: Hasan ERTÜRK 07 Mayıs 2018, 18:45:09 »
beyenmedim olmuyor kodda hata var
Siz beğenin diye eklemedim zaten.
8
Led ve Buton uygulamaları / 14. Neopikxel Adreslenebilir Led Uygulaması
« Son İleti Gönderen: Hasan ERTÜRK 03 Mayıs 2018, 16:58:18 »
Bu projemizde adreslenebilir neopikxel ledleri tanıtıp, örnek bir uygulamayı paylaşacağız.

Ön Bilgi:
Led teknolojisi geliştikçe sıradan ledler yerlerini RGB ledlere ve şerit ledlere bıraktı. Sıradan ledler kırmızı, sarı, yeşil, mavi gibi tek bir renkte ışık verebilirken RGB ve şerit ledler farklı renklerde ışık verebilmekte.

12 ledden oluşan bir şerit led düşünelim. Bu şerit ledimizi farklı renklerde yakabiliyoruz. Ancak şeritteki bütün ledler aynı renkte yanmaktadır, ve aynı anda sönmektedir. Adreslenebilir neopikxel ledlerden yapılmış bir şerit leddeki ledlerin her birini farklı bir renkte, farklı bir parlaklıkta yakabilir, istediğimiz ledi söndürebiliriz. Bunu yapabilmek için bir mikrodenetleyiciye ihtiyacımız var. Bu projemizde 12 adetten oluşan adreslenebilir neopikxel ledlerimizi arduino ile süreceğiz. 12 adet RGB ledi arduino ile sürmek istersek her bir led için birer tane I/Q pini kullanma zorunluluğu ortaya çıkacaktır. Oysa ki adreslenebilir neopikxel ledlerimizin tamamını sürebilmek için bize 1 adet pwm özellikli 1 adet I/Q pini kullanmak yeterlidir. Bu pin tasarrufu bakımından da çok güzel bir özellikdeğil mi?

Neopikxel ledler normal ledler gibi tek tek satışa sunulabildiği gibi 4'lü, 8'li, 30'lu gibi gruplardan oluşan şerit, daire, yay ya da matris şeklinde de satılmaktadır.

Aşağıdaki fotoğraflarda çeşitli neopiksel ledleri görebilirsiniz.


Fotoğraf 1: 3'lü şerit


Fotoğraf 2: Esnek matris



Fotoğraf 3: Peşpeşe eklenebilir


Fotoğraf 4: 8x8 matris


Fotoğraf 5: Tekli


Fotoğraf 6: Çeyrek daire


Fotoğraf 7: Breadboard uyumlu


Fotoğraf 8: 7'li daire


Fotoğraf 9: 24'lü halka


Fotoğraf 10: 16'lı halka


Fotoğraf 11: 30'lu şerit


Fotoğraf 12: 8'li şerit

Neopikxel Led Pinleri

Fotoğraf 13: Neopiksel pinleri

Her bir neopixel led 4 pini bulunur. Bu pinlerin isimleri DIN, 5V, GND ve DOUT'tur. Mikrodenetleyiciden gelen bilgi işareti ilk ledin DIN pinine uygulanır. Diğer ledlerin DIN pinleri kendinden önce gelen ledin DOUT pinine paket içerisinde bağlıdır. Ayrıca bağlantı yapılması gerekmez. Ancak bu projemizde olduğu gibi tekli ledlerden bir şerit oluşturuyorsanız bu bağlantıları yapmanız gerekmektedir. Ledleri beslemek için 5Voltluk bir dc kaynağa ihtiyaç vardır. DC kaynağın pozitif kutbu ledin 5Volt pinine, negatif kutbu GND pinine bağlanmalıdır.

<iframe width="640" height="385" src="//www.youtube.com/embed/JElmZEP5efY?fs=1&start=" frameborder="0" allowfullscreen></iframe>
Video 1: Örnek Neopikxel led uygulaması


Fotoğraf 14: Montajı tamamlanmış devre


Fotoğraf 15: Montajı tamamlanmış devre

Devre şeması


Şema 1: Fritzing Devre Şeması

Arduino Kodları
Kod: [Seç]
#include <Adafruit_NeoPixel.h>  // neopixel kutuphanesi eklendi
#define PIN 6 // Digital 6. pini neopixelleri surmek icin kullaniyoruz
#define NUMPIXELS 12  // 12 adet ledimiz var

Adafruit_NeoPixel NeoPixel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);

void setup() {
  NeoPixel.setBrightness(100);
  NeoPixel.begin();
  NeoPixel.show();
}

void loop() {
NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));  // 1. ledi kirmizi ayarladik
NeoPixel.setPixelColor(1,NeoPixel.Color(255,0,0));  // 2. ledi kirmizi ayarladik
NeoPixel.setPixelColor(2,NeoPixel.Color(255,0,0));  // 3. ledi kirmizi ayarladik
NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));  // 4. ledi kirmizi ayarladik
NeoPixel.setPixelColor(4,NeoPixel.Color(255,0,0));  // 5. ledi kirmizi ayarladik
NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,255));  // 6. ledi yesil ayarladik
NeoPixel.setPixelColor(6,NeoPixel.Color(0,0,255));  // 7. ledi yesil ayarladik
NeoPixel.setPixelColor(7,NeoPixel.Color(255,0,0));  // 8. ledi kirmizi ayarladik
NeoPixel.setPixelColor(8,NeoPixel.Color(255,0,0));  // 9. ledi kirmizi ayarladik
NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));  // 10. ledi kirmizi ayarladik
NeoPixel.setPixelColor(10,NeoPixel.Color(255,0,0)); // 11. ledi kirmizi ayarladik
NeoPixel.setPixelColor(11,NeoPixel.Color(255,0,0)); // 12. ledi kirmizi ayarladik
NeoPixel.show();  // Renkleri ayarlanan ledler yakildi
delay(200); // 200 ms bekle

NeoPixel.setPixelColor(4,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(7,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(9,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(10,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,0,255));
NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(6,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(4,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(7,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(8,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(2,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(9,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(10,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,255,0));
NeoPixel.setPixelColor(11,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(5,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(6,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);


NeoPixel.setPixelColor(4,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(7,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(8,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(2,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(10,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));
NeoPixel.setPixelColor(11,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(255,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(6,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(200);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(200);

for (int domiRobot = 1; domiRobot <= 5; domiRobot ++) {

NeoPixel.setPixelColor(0,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,0,255));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(0,255,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(0,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(1,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(2,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(3,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(4,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(5,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(6,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(7,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(8,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(9,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(10,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);

NeoPixel.setPixelColor(11,NeoPixel.Color(255,0,0));
NeoPixel.show();
delay(50);}

}

Malzeme listesi

Download
İhtiyaç duyulması halinde  projeye ait dosyaları konu ekinden indirebilirsiniz.

9
Otomatik kumanda / 3 LED
« Son İleti Gönderen: Hasan ERTÜRK 26 Nisan 2018, 08:02:22 »
3 Led var. kırmızı, sarı,yeşil.
Sarı led yanarken yeşil yanmayacak.
Kırmızı led yanarken yeşil ve sarı yanmayacak.

<iframe width="640" height="385" src="//www.youtube.com/embed/LlqB_qjiHxg?fs=1&start=" frameborder="0" allowfullscreen></iframe>
10
Çocuklar için / 1. Kod yazmadan arduino programlayın
« Son İleti Gönderen: Hasan ERTÜRK 22 Nisan 2018, 16:15:56 »
Herhangi bir programlama dili bilmeden tamamen görsel olarak Arduino programlayabilirsiniz. programlamaya başlamadan önce bir ön hazırlığımız olacak. Aşağıdaki açıklamaları takip ederek ön bilgilenmeyi tamamladıktan sonra kod yazmadan arduino programlamaya başlayabilirsiniz.

Scracth Nedir?

Scratch yazılım geliştirme platformu ve programlama dili çocukların bilgisayar programlamaya ilk adımları atmalarını sağlamak amacıyla geliştirilmiştir.


S4A Nedir?
S4A programı Scratch tabanlı bir programlama dilidir. İçerisinde Arduino’yu kontrol etmemizi sağlayan bazı programlama blokları bulunur. Bu program blokları sayesinde kod yazmadan tamamen görsel olarak Arduino’yu programlayabilirsiniz. Programınızı bloklar halinde yazıyor olmanız dışında S4A’nın Türkçe dil desteğinin olması programlamaya ayrı bir kolaylık getiriyor.

Programın avantajlarından birisi ise yalnızca bilgisayardan veri gönderme değil aynı zamanda Arduino’dan gelen verileri de okuyabiliyorsunuz. Bu sayede daha zengin programlar yazabilirsiniz.


Öncelikle buraya tıklayarak Arduino’nun yazılımını indirmelisiniz.

Ardından aşağıdaki kodları bir defaya mahsus arduinoya yüklemeniz gerekiyor.

Kod: [Seç]
typedef enum {
  input, servomotor, pwm, digital }
pinType;

typedef struct pin {
  pinType type;       //Type of pin
  int state;         //State of an output
  //byte value;       //Value of an input. Not used by now. TODO
};

pin arduinoPins[14];  //Array of struct holding 0-13 pins information

unsigned long lastDataReceivedTime = millis();

void setup()
{
  Serial.begin(38400);
  Serial.flush();
  configurePins();
  resetPins();
}

void loop()
{
  static unsigned long timerCheckUpdate = millis();

  if (millis()-timerCheckUpdate>=20)
  {
    sendUpdateServomotors();
    sendSensorValues();
    timerCheckUpdate=millis();
  }

  readSerialPort();
}

void configurePins()
{
  arduinoPins[0].type=input;
  arduinoPins[1].type=input;
  arduinoPins[2].type=input;
  arduinoPins[3].type=input;
  arduinoPins[4].type=servomotor;
  arduinoPins[5].type=pwm;
  arduinoPins[6].type=pwm;
  arduinoPins[7].type=servomotor;
  arduinoPins[8].type=servomotor;
  arduinoPins[9].type=pwm;
  arduinoPins[10].type=digital;
  arduinoPins[11].type=digital;
  arduinoPins[12].type=digital;
  arduinoPins[13].type=digital;
}

void resetPins() {
  for (byte index=0; index <=13; index++)
  {
    if (arduinoPins[index].type!=input)
    {
      pinMode(index, OUTPUT);
      if (arduinoPins[index].type==servomotor)
      {
        arduinoPins[index].state = 255;
        servo (index, 255);
      }
      else
      {
        arduinoPins[index].state=0;
        digitalWrite(index,LOW);
      }
    }
  }
}

void sendSensorValues()
{
  unsigned int sensorValues[6], readings[5];
  byte sensorIndex;

  for (sensorIndex = 0; sensorIndex < 6; sensorIndex++) //for analog sensors, calculate the median of 5 sensor readings in order to avoid variability and power surges
  {
    for (byte p = 0; p < 5; p++)
      readings[p] = analogRead(sensorIndex);
    insertionSort(readings, 5); //sort readings
    sensorValues[sensorIndex] = readings[2]; //select median reading
  }

  //send analog sensor values
  for (sensorIndex = 0; sensorIndex < 6; sensorIndex++)
    ScratchBoardSensorReport(sensorIndex, sensorValues[sensorIndex]);

  //send digital sensor values
  ScratchBoardSensorReport(6, digitalRead(2)?1023:0);
  ScratchBoardSensorReport(7, digitalRead(3)?1023:0);
}

void insertionSort(unsigned int* array, unsigned int n)
{
  for (int i = 1; i < n; i++)
    for (int j = i; (j > 0) && ( array[j] < array[j-1] ); j--)
      swap( array, j, j-1 );
}

void swap(unsigned int* array, unsigned int a, unsigned int b)
{
  unsigned int temp = array[a];
  array[a] = array[b];
  array[b] = temp;
}

void ScratchBoardSensorReport(byte sensor, int value) //PicoBoard protocol, 2 bytes per sensor
{
  Serial.write( B10000000
    | ((sensor & B1111)<<3)
    | ((value>>7) & B111));
  Serial.write( value & B1111111);
}

void readSerialPort()
{
  byte pin;
  int newVal;
  static byte actuatorHighByte, actuatorLowByte;
  static byte readingSM = 0;

  if (Serial.available())
  {
    if (readingSM == 0)
    {
      actuatorHighByte = Serial.read();
      if (actuatorHighByte >= 128) readingSM = 1;
    }
    else if (readingSM == 1)
    {
      actuatorLowByte = Serial.read();
      if (actuatorLowByte < 128) readingSM = 2;
      else readingSM = 0;
    }

    if (readingSM == 2)
    {
      lastDataReceivedTime = millis();   
      pin = ((actuatorHighByte >> 3) & 0x0F);
      newVal = ((actuatorHighByte & 0x07) << 7) | (actuatorLowByte & 0x7F);

      if(arduinoPins[pin].state != newVal)
      {
        arduinoPins[pin].state = newVal;
        updateActuator(pin);
      }
      readingSM = 0;
    }
  }
  else checkScratchDisconnection();
}

void reset() //with xbee module, we need to simulate the setup execution that occurs when a usb connection is opened or closed without this module
{
  resetPins();        // reset pins
  sendSensorValues(); // protocol handshaking
  lastDataReceivedTime = millis();
}

void updateActuator(byte pinNumber)
{
  if (arduinoPins[pinNumber].type==digital) digitalWrite(pinNumber, arduinoPins[pinNumber].state);
  else if (arduinoPins[pinNumber].type==pwm) analogWrite(pinNumber, arduinoPins[pinNumber].state);
}

void sendUpdateServomotors()
{
  for (byte p = 0; p < 10; p++)
    if (arduinoPins[p].type == servomotor) servo(p, arduinoPins[p].state);
}

void servo (byte pinNumber, byte angle)
{
  if (angle != 255)
    pulse(pinNumber, (angle * 10) + 600);
}

void pulse (byte pinNumber, unsigned int pulseWidth)
{
  digitalWrite(pinNumber, HIGH);
  delayMicroseconds(pulseWidth);
  digitalWrite(pinNumber, LOW);
}

void checkScratchDisconnection() //the reset is necessary when using an wireless arduino board (because we need to ensure that arduino isn't waiting the actuators state from Scratch) or when scratch isn't sending information (because is how serial port close is detected)
{
  if (millis() - lastDataReceivedTime > 1000) reset(); //reset state if actuators reception timeout = one second
}



Bu sayede S4A programı ile Arduino arasında ilk haberleşmeyi sağlayacaksınız. S4A programının Arduino’nuzu tanıması için S4AFirmware16 isimli programı Arduino’ya atmanız gerekiyor. Sonrasında bu işlemi tekrarlamanıza gerek yok.

S4A’yı buraya tıklayarak indirebilirsiniz. S4A programının kurduktan sonra aşağıda ki görüntü ile karşılaşacaksınız.


Sol tarafta ki program bloklarını kullanarak programınızı oluşturabilir ve Arduino’da çalışmasını sağlayabilirsiniz. S4A ile programlamaya hemen başlayın !
Sayfa: [1] 2 3 ... 10