Ynt: PCF8574 Binary Converter nasıl yaparım?

Başlatan veliusta, 09 Mayıs 2014, 04:19:16

Kabil ATICI

#15
deger=iInput & 0x01;   //biti ayıkla
if(deger !=degLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed1=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x01))  //karşılaştırma
{ 
 digitalWrite(LED1, LOW);
Serial.println("1.LED KAPATILDI");
}
  else
{
 digitalWrite(LED1, HIGH);
Serial.println("1.LED ACILDI");
}
}


bu şekilde olması gerek.
ambar7

emekli

arkadaşlar arduino da 8 bitlik portlara erişim var 'arduino port manipülasyonu ' diye aratınça nette bilgi var 

polleme

Alıntı yapılan: emekli - 09 Mayıs 2014, 16:56:39
arkadaşlar arduino da 8 bitlik portlara erişim var 'arduino port manipülasyonu ' diye aratınça nette bilgi var 

Bu, şimdiye kadar hiç görmediğim ve duymadığım bir bilgi idi. Eğer gerçekten beklediğim gibiyse Arduino'nun gözümdeki değeri bir kademe artacak. Teşekkür ederim.

veliusta

#include <Wire.h>

const int LED1 = 2;
const int LED2 = 3;
const int LED3 = 4;
const int LED4 = 5;
const int LED5 = 6;
const int LED6 = 7;
const int LED7 = 8;
const int LED8 = 9;

byte iInput=0;
byte deger;
byte degLed1=0;
byte degLed2=0;
byte degLed3=0;
byte degLed4=0;
byte degLed5=0;
byte degLed6=0;
byte degLed7=0;
byte degLed8=0;

void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
Serial.println(" iyi Eglenceler / Veli USTA ");
Wire.begin();
}
    void loop()
    {
      Wire.requestFrom(32,1);
      if(Wire.available())   
      {
        iInput = Wire.read();
      }
      
 if(iInput<=255)      
      {
      
deger=iInput & 0x01;
if(deger !=degLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed1=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x01)
 { 
 digitalWrite(LED1, LOW);
 Serial.println("1.LED KAPATILDI");
 deger =degLed1;
 }
  else
 {
 digitalWrite(LED1, HIGH);
 Serial.println("1.LED ACILDI");
 deger =degLed1;
 }
}

deger=iInput & 0x02;
if(deger !=degLed2)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed2=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x02)
 { 
 digitalWrite(LED2, LOW);
 Serial.println("2.LED KAPATILDI");
 deger =degLed2;
 }
  else
 {
 digitalWrite(LED2, HIGH);
 Serial.println("2.LED ACILDI");
 deger =degLed2;
 }
}

deger=iInput & 0x04;
if(deger !=degLed3)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed3=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x04)
 { 
 digitalWrite(LED3, LOW);
 Serial.println("3.LED KAPATILDI");
 deger =degLed3;
 }
  else
 {
 digitalWrite(LED3, HIGH);
 Serial.println("3.LED ACILDI");
 deger =degLed3;
 }
}

deger=iInput & 0x08;
if(deger !=degLed4)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed4=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x08)
 { 
 digitalWrite(LED4, LOW);
 Serial.println("4.LED KAPATILDI");
 deger =degLed4;
 }
  else
 {
 digitalWrite(LED4, HIGH);
 Serial.println("4.LED ACILDI");
 deger =degLed4;
 }
}

deger=iInput & 0x10;
if(deger !=degLed5)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed5=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x10)
 { 
 digitalWrite(LED5, LOW);
 Serial.println("5.LED KAPATILDI");
 deger =degLed5;
 }
  else
 {
 digitalWrite(LED5, HIGH);
 Serial.println("5.LED ACILDI");
 deger =degLed5;
 }
}

deger=iInput & 0x20;
if(deger !=degLed6)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed6=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x20)
 { 
 digitalWrite(LED6, LOW);
 Serial.println("6.LED KAPATILDI");
 deger =degLed6;
 }
  else
 {
 digitalWrite(LED6, HIGH);
 Serial.println("6.LED ACILDI");
 deger =degLed6;
 }
}

deger=iInput & 0x40;
if(deger !=degLed7)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed7=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x40)
 { 
 digitalWrite(LED7, LOW);
 Serial.println("7.LED KAPATILDI");
 deger =degLed7;
 }
  else
 {
 digitalWrite(LED7, HIGH);
 Serial.println("7.LED ACILDI");
 deger =degLed7;
 }
}

deger=iInput & 0x80;
if(deger !=degLed8)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed8=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x80)
 { 
 digitalWrite(LED8, LOW);
 Serial.println("8.LED KAPATILDI");
 deger =degLed8;
 }
  else
 {
 digitalWrite(LED8, HIGH);
 Serial.println("8.LED ACILDI");
 deger =degLed8;
 }
}
}
}


Yaptım çalışıyor. Tek Sorun İlk anda
..... Serial.println("6.LED KAPATILDI");  Serial.println("7.LED KAPATILDI"); .. Serial.println("8.LED KAPATILDI"); şeklinde 8 adet bilgi gidiyor. Sonra düzeliyor. Bunu nasıl düzeltiriz.

mehmet

kullanmak daha mantıklı olmaz mı?Sonuçta standart kütüphaneler kullanılıyor, Arduino
kütüphanelerinin yanında. PORTx değişkeninin
kullanılmasında sorun olacağını sammıyorum.
Şu an imkanım yok, ama en kısa zamanda deneyeceğim.
loop(void)
{
PORTC = 0x55;
DelayMs(100);
PORTC = 0xAA;
DelayMs(100);
}
setup içinde de DDRC ile çıkış yapılır...

Bir de şu kalabalık if ordusu yerine switch-case
kullanmak daha mantıklı olmaz mı?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

veliusta


polleme

Şimdi ben de o linke bakıyordum. Kodu şu hale getirsek çok daha kısa ve etkin olmaz mı?

I2C ile tuşları okuyacağız, okuduğumuz değeri bu port manipluasyon ile örneğin portB'ye yazacağız. Böylece tuşlardan hangisine basıldı ise o karşılık gelen LED yanacaktır. If kontrolleri ile switch-case yapısına da gerek kalmayacaktır. Yanlış mı düşünüyorum? Bu port manipülasyonu tüm algılarımı değiştirdi. Tabi bunu kullanmak için B, C ve D portlarının Arduino üzerindeki dağılımını bilmek ve dış devreleri ona gore bağlamak gerek.

mehmet

Bir adım daha ilersi; 
bir tane daha 8574 ilave edilir.
Birisinden okunur, birisine yazılır...
PORT, DDR kullanmaya gerek kalmaz...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

Kabil ATICI

byte degLed1=0x01;
byte degLed2=0x02;
byte degLed3=0x04;
byte degLed4=0x08;
...


degLed ilk değerlerini eşit olmaları gereken sayıyı ata.
ambar7

polleme

Alıntı yapılan: mehmet - 09 Mayıs 2014, 17:57:33
Bir adım daha ilersi; 
bir tane daha 8574 ilave edilir.
Birisinden okunur, birisine yazılır...
PORT, DDR kullanmaya gerek kalmaz...

Bu zaten benim en başta getirdiğim öneri idi. Bu yapılırsa toplam 16 IO için Arduino üzerinde sadece iki pin kullanılır. Her iki seçeneği de duruma gore değerlendirmek gerek.

veliusta

#25
Arkadaşlar sınırları zorladım;

Resim; http://www.1resimyukle.com/images/2014/05/09/9.png

#include <Wire.h>

const int LED1 = 2;
const int LED2 = 3;
const int LED3 = 4;
const int LED4 = 5;
const int LED5 = 6;
const int LED6 = 7;
const int LED7 = 8;
const int LED8 = 9;

byte iInput=0;
byte xInput=0;
byte yInput=0;
byte zInput=0;
byte qInput=0;
byte deger;
byte xdeger;
byte ydeger;
byte zdeger;
byte qdeger;
byte degLed1=0;
byte degLed2=0;
byte degLed3=0;
byte degLed4=0;
byte degLed5=0;
byte degLed6=0;
byte degLed7=0;
byte degLed8=0;
byte xdegLed1=0;
byte xdegLed2=0;
byte xdegLed3=0;
byte xdegLed4=0;
byte xdegLed5=0;
byte xdegLed6=0;
byte xdegLed7=0;
byte xdegLed8=0;
byte ydegLed1=0;
byte ydegLed2=0;
byte ydegLed3=0;
byte ydegLed4=0;
byte ydegLed5=0;
byte ydegLed6=0;
byte ydegLed7=0;
byte ydegLed8=0;
byte zdegLed1=0;
byte zdegLed2=0;
byte zdegLed3=0;
byte zdegLed4=0;
byte zdegLed5=0;
byte zdegLed6=0;
byte zdegLed7=0;
byte zdegLed8=0;
byte qdegLed1=0;
byte qdegLed2=0;
byte qdegLed3=0;
byte qdegLed4=0;
byte qdegLed5=0;
byte qdegLed6=0;
byte qdegLed7=0;
byte qdegLed8=0;

void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
Serial.println(" iyi Eglenceler / Veli USTA ");
Wire.begin();
}
    void loop()
    {
      Wire.requestFrom(32,1);
      if(Wire.available())   
      {
        iInput = Wire.read();
      }
      
      Wire.requestFrom(33,1);
      if(Wire.available())   
      {
        xInput = Wire.read();
      }
      
      Wire.requestFrom(34,1);
      if(Wire.available())   
      {
        yInput = Wire.read();
      }
      
      Wire.requestFrom(35,1);
      if(Wire.available())   
      {
        zInput = Wire.read();
      }
      
      Wire.requestFrom(36,1);
      if(Wire.available())   
      {
        qInput = Wire.read();
      }
      
 if(iInput<=255)      
      {
      
deger=iInput & 0x01;
if(deger !=degLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed1=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x01)
 { 
 digitalWrite(LED1, LOW);
 Serial.println("1.LED KAPATILDI");
 deger =degLed1;
 }
  else
 {
 digitalWrite(LED1, HIGH);
 Serial.println("1.LED ACILDI");
 deger =degLed1;
 }
}

deger=iInput & 0x02;
if(deger !=degLed2)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed2=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x02)
 { 
 digitalWrite(LED2, LOW);
 Serial.println("2.LED KAPATILDI");
 deger =degLed2;
 }
  else
 {
 digitalWrite(LED2, HIGH);
 Serial.println("2.LED ACILDI");
 deger =degLed2;
 }
}

deger=iInput & 0x04;
if(deger !=degLed3)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed3=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x04)
 { 
 digitalWrite(LED3, LOW);
 Serial.println("3.LED KAPATILDI");
 deger =degLed3;
 }
  else
 {
 digitalWrite(LED3, HIGH);
 Serial.println("3.LED ACILDI");
 deger =degLed3;
 }
}

deger=iInput & 0x08;
if(deger !=degLed4)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed4=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x08)
 { 
 digitalWrite(LED4, LOW);
 Serial.println("4.LED KAPATILDI");
 deger =degLed4;
 }
  else
 {
 digitalWrite(LED4, HIGH);
 Serial.println("4.LED ACILDI");
 deger =degLed4;
 }
}

deger=iInput & 0x10;
if(deger !=degLed5)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed5=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x10)
 { 
 digitalWrite(LED5, LOW);
 Serial.println("5.LED KAPATILDI");
 deger =degLed5;
 }
  else
 {
 digitalWrite(LED5, HIGH);
 Serial.println("5.LED ACILDI");
 deger =degLed5;
 }
}

deger=iInput & 0x20;
if(deger !=degLed6)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed6=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x20)
 { 
 digitalWrite(LED6, LOW);
 Serial.println("6.LED KAPATILDI");
 deger =degLed6;
 }
  else
 {
 digitalWrite(LED6, HIGH);
 Serial.println("6.LED ACILDI");
 deger =degLed6;
 }
}

deger=iInput & 0x40;
if(deger !=degLed7)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed7=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x40)
 { 
 digitalWrite(LED7, LOW);
 Serial.println("7.LED KAPATILDI");
 deger =degLed7;
 }
  else
 {
 digitalWrite(LED7, HIGH);
 Serial.println("7.LED ACILDI");
 deger =degLed7;
 }
}

deger=iInput & 0x80;
if(deger !=degLed8)       //ilk değer lle karşılaştır eşit değilse işe başla
{
degLed8=deger;               //ilk değeri  yeni değerle eşitle
if(deger==0x80)
 { 
 digitalWrite(LED8, LOW);
 Serial.println("8.LED KAPATILDI");
 deger =degLed8;
 }
  else
 {
 digitalWrite(LED8, HIGH);
 Serial.println("8.LED ACILDI");
 deger =degLed8;
 }
}
}


 if(xInput<=255)      
      {
      
xdeger=xInput & 0x01;
if(xdeger !=xdegLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed1=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x01)
 { 
 Serial.println("9.LED KAPATILDI");
 xdeger =xdegLed1;
 }
  else
 {
 Serial.println("9.LED ACILDI");
 xdeger =xdegLed1;
 }
}

xdeger=xInput & 0x02;
if(xdeger !=xdegLed2)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed2=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x02)
 { 
 Serial.println("10.LED KAPATILDI");
 xdeger =xdegLed2;
 }
  else
 {
 Serial.println("10.LED ACILDI");
 xdeger =xdegLed2;
 }
}

xdeger=xInput & 0x04;
if(xdeger !=xdegLed3)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed3=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x04)
 { 
 Serial.println("11.LED KAPATILDI");
 xdeger =xdegLed3;
 }
  else
 {
 Serial.println("11.LED ACILDI");
 xdeger =xdegLed3;
 }
}

xdeger=xInput & 0x08;
if(xdeger !=xdegLed4)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed4=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x08)
 { 
 Serial.println("12.LED KAPATILDI");
 xdeger =xdegLed4;
 }
  else
 {
 Serial.println("12.LED ACILDI");
 xdeger =xdegLed4;
 }
}

xdeger=xInput & 0x10;
if(xdeger !=xdegLed5)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed5=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x10)
 { 
 Serial.println("13.LED KAPATILDI");
 xdeger =xdegLed5;
 }
  else
 {
 Serial.println("13.LED ACILDI");
 xdeger =xdegLed5;
 }
}

xdeger=xInput & 0x20;
if(xdeger !=xdegLed6)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed6=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x20)
 { 
 Serial.println("14.LED KAPATILDI");
 xdeger =xdegLed6;
 }
  else
 {
 Serial.println("14.LED ACILDI");
 xdeger =xdegLed6;
 }
}

xdeger=xInput & 0x40;
if(xdeger !=xdegLed7)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed7=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x40)
 { 
 Serial.println("15.LED KAPATILDI");
 xdeger =xdegLed7;
 }
  else
 {
 Serial.println("15.LED ACILDI");
 xdeger =xdegLed7;
 }
}

xdeger=xInput & 0x80;
if(xdeger !=xdegLed8)       //ilk değer lle karşılaştır eşit değilse işe başla
{
xdegLed8=xdeger;               //ilk değeri  yeni değerle eşitle
if(xdeger==0x80)
 { 
 Serial.println("16.LED KAPATILDI");
 xdeger =xdegLed8;
 }
  else
 {
 Serial.println("16.LED ACILDI");
 xdeger =xdegLed8;
 }
}


 if(yInput<=255)      
      {
      
ydeger=yInput & 0x01;
if(ydeger !=ydegLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed1=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x01)
 { 
 Serial.println("17.LED KAPATILDI");
 ydeger =ydegLed1;
 }
  else
 {
 Serial.println("17.LED ACILDI");
 ydeger =ydegLed1;
 }
}

ydeger=yInput & 0x02;
if(ydeger !=ydegLed2)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed2=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x02)
 { 
 Serial.println("18.LED KAPATILDI");
 ydeger =ydegLed2;
 }
  else
 {
 Serial.println("18.LED ACILDI");
 ydeger =ydegLed2;
 }
}

ydeger=yInput & 0x04;
if(ydeger !=ydegLed3)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed3=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x04)
 { 
 Serial.println("19.LED KAPATILDI");
 ydeger =ydegLed3;
 }
  else
 {
 Serial.println("19.LED ACILDI");
 ydeger =ydegLed3;
 }
}

ydeger=yInput & 0x08;
if(ydeger !=ydegLed4)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed4=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x08)
 { 
 Serial.println("20.LED KAPATILDI");
 ydeger =ydegLed4;
 }
  else
 {
 Serial.println("20.LED ACILDI");
 ydeger =ydegLed4;
 }
}

ydeger=yInput & 0x10;
if(ydeger !=ydegLed5)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed5=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x10)
 { 
 Serial.println("21.LED KAPATILDI");
 ydeger =ydegLed5;
 }
  else
 {
 Serial.println("21.LED ACILDI");
 ydeger =ydegLed5;
 }
}

ydeger=yInput & 0x20;
if(ydeger !=ydegLed6)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed6=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x20)
 { 
 Serial.println("22.LED KAPATILDI");
 ydeger =ydegLed6;
 }
  else
 {
 Serial.println("22.LED ACILDI");
 ydeger =ydegLed6;
 }
}

ydeger=yInput & 0x40;
if(ydeger !=ydegLed7)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed7=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x40)
 { 
 Serial.println("23.LED KAPATILDI");
 ydeger =ydegLed7;
 }
  else
 {
 Serial.println("23.LED ACILDI");
 ydeger =ydegLed7;
 }
}

ydeger=yInput & 0x80;
if(ydeger !=ydegLed8)       //ilk değer lle karşılaştır eşit değilse işe başla
{
ydegLed8=ydeger;               //ilk değeri  yeni değerle eşitle
if(ydeger==0x80)
 { 
 Serial.println("24.LED KAPATILDI");
 ydeger =ydegLed8;
 }
  else
 {
 Serial.println("24.LED ACILDI");
 ydeger =ydegLed8;
 }
 }
}


 if(zInput<=255)      
      {
      
zdeger=zInput & 0x01;
if(zdeger !=zdegLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed1=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x01)
 { 
 Serial.println("25.LED KAPATILDI");
 zdeger =zdegLed1;
 }
  else
 {
 Serial.println("25.LED ACILDI");
 zdeger =zdegLed1;
 }
}

zdeger=zInput & 0x02;
if(zdeger !=zdegLed2)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed2=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x02)
 { 
 Serial.println("26.LED KAPATILDI");
 zdeger =zdegLed2;
 }
  else
 {
 Serial.println("26.LED ACILDI");
 zdeger =zdegLed2;
 }
}

zdeger=zInput & 0x04;
if(zdeger !=zdegLed3)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed3=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x04)
 { 
 Serial.println("27.LED KAPATILDI");
 zdeger =zdegLed3;
 }
  else
 {
 Serial.println("27.LED ACILDI");
 zdeger =zdegLed3;
 }
}

zdeger=zInput & 0x08;
if(zdeger !=zdegLed4)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed4=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x08)
 { 
 Serial.println("28.LED KAPATILDI");
 zdeger =zdegLed4;
 }
  else
 {
 Serial.println("28.LED ACILDI");
 zdeger =zdegLed4;
 }
}

zdeger=zInput & 0x10;
if(zdeger !=zdegLed5)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed5=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x10)
 { 
 Serial.println("29.LED KAPATILDI");
 zdeger =zdegLed5;
 }
  else
 {
 Serial.println("29.LED ACILDI");
 zdeger =zdegLed5;
 }
}

zdeger=zInput & 0x20;
if(zdeger !=zdegLed6)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed6=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x20)
 { 
 Serial.println("30.LED KAPATILDI");
 zdeger =zdegLed6;
 }
  else
 {
 Serial.println("30.LED ACILDI");
 zdeger =zdegLed6;
 }
}

zdeger=zInput & 0x40;
if(zdeger !=zdegLed7)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed7=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x40)
 { 
 Serial.println("31.LED KAPATILDI");
 zdeger =zdegLed7;
 }
  else
 {
 Serial.println("31.LED ACILDI");
 zdeger =zdegLed7;
 }
}

zdeger=zInput & 0x80;
if(zdeger !=zdegLed8)       //ilk değer lle karşılaştır eşit değilse işe başla
{
zdegLed8=zdeger;               //ilk değeri  yeni değerle eşitle
if(zdeger==0x80)
 { 
 Serial.println("32.LED KAPATILDI");
 zdeger =zdegLed8;
 }
  else
 {
 Serial.println("32.LED ACILDI");
 zdeger =zdegLed8;
 }
}
}
 
 if(qInput<=255)      
      {
      
qdeger=qInput & 0x01;
if(qdeger !=qdegLed1)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed1=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x01)
 { 
 Serial.println("33.LED KAPATILDI");
 qdeger =qdegLed1;
 }
  else
 {
 Serial.println("33.LED ACILDI");
 qdeger =qdegLed1;
 }
}

qdeger=qInput & 0x02;
if(qdeger !=qdegLed2)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed2=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x02)
 { 
 Serial.println("34.LED KAPATILDI");
 qdeger =qdegLed2;
 }
  else
 {
 Serial.println("34.LED ACILDI");
 qdeger =qdegLed2;
 }
}

qdeger=qInput & 0x04;
if(qdeger !=qdegLed3)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed3=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x04)
 { 
 Serial.println("35.LED KAPATILDI");
 qdeger =qdegLed3;
 }
  else
 {
 Serial.println("35.LED ACILDI");
 qdeger =qdegLed3;
 }
}

qdeger=qInput & 0x08;
if(qdeger !=qdegLed4)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed4=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x08)
 { 
 Serial.println("36.LED KAPATILDI");
 qdeger =qdegLed4;
 }
  else
 {
 Serial.println("36.LED ACILDI");
 qdeger =qdegLed4;
 }
}

qdeger=qInput & 0x10;
if(qdeger !=qdegLed5)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed5=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x10)
 { 
 Serial.println("37.LED KAPATILDI");
 qdeger =qdegLed5;
 }
  else
 {
 Serial.println("37.LED ACILDI");
 qdeger =qdegLed5;
 }
}

qdeger=qInput & 0x20;
if(qdeger !=qdegLed6)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed6=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x20)
 { 
 Serial.println("38.LED KAPATILDI");
 qdeger =qdegLed6;
 }
  else
 {
 Serial.println("38.LED ACILDI");
 qdeger =qdegLed6;
 }
}

qdeger=qInput & 0x40;
if(qdeger !=qdegLed7)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed7=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x40)
 { 
 Serial.println("39.LED KAPATILDI");
 qdeger =qdegLed7;
 }
  else
 {
 Serial.println("39.LED ACILDI");
 qdeger =qdegLed7;
 }
}

qdeger=qInput & 0x80;
if(qdeger !=qdegLed8)       //ilk değer lle karşılaştır eşit değilse işe başla
{
qdegLed8=qdeger;               //ilk değeri  yeni değerle eşitle
if(qdeger==0x80)
 { 
 Serial.println("40.LED KAPATILDI");
 qdeger =qdegLed8;
 }
  else
 {
 Serial.println("40.LED ACILDI");
 qdeger =qdegLed8;
 }
}
}
 
}
}


Tek Sorun ilk başta 40 adet veri gelmesi.

mesaj birleştirme:: 10 Mayıs 2014, 08:40:55

Teşekkürler ambar hocam hiç bir sorun yok :D

Şimdi Merak ettiğim birşey var. Bu uygulamayı I2C haberleşme olmadan Arduino Mega ile Basit bir şekilde yapsakydık, Yaklaşık kaç ms veya us zaman farklı olurdu?
Uno ve Mega'nın clock hızları aynı..

Kabil ATICI

Derleyici bazında bir değişiklik yoksa üzerindeki işlemciler bazında aynı frekansta aynı hızda işlemi yerine getirir.

nano için ATmega328
Mega için ATmega2560
işlemciler kullanılıyor ki aralarındaki fark sadece işlemcinin bacak sayısı dolayısı ile port sayısı.
Yoksa performans olarak aynı frekansta iken aynı hızda işlem yapıyorlar.
ambar7