Ir Kumanda ile led kontrol

Öncelikle merhaba;

Önceki yazımızda ir kumanda kodlarını nasıl öğrendiğimizi görmüştük bu yazımızda ise kumanda ile nasıl eğlence amaçlı ledleri kontrol edeceğimizi göreceğiz.

 

Gerekli Malzemeler;

  • arduino uno
  • 9 tane led diyot
  • 9 tane 330 ohm direnç
  • ir kumanda
  • ir alıcı
  • breadbord

Devre Şeması;

Proje Kodları;

#include <IRremote.h>
int INFRARED_PIN = 2;
const int led_dizisi[] = {3, 4, 5, 6, 7, 8, 9, 10, 11};

IRrecv irrecv(INFRARED_PIN);
decode_results results;
int durum = 1;
void setup() {

for (int j = 0; j < 10; j++) {
pinMode (led_dizisi[j], OUTPUT);
}
Serial.begin(9600);
irrecv.enableIRIn();
}

void loop() {
if (irrecv.decode(&results)) {
Serial.print("deger = ");
Serial.println(results.value);
Serial.print ("durum = ");
Serial.println(durum);
irrecv.resume();
}
//----------------
if (1084196983 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[0] , HIGH ); // led i yak

results.value = 0;

}
else if (1084180663 == results.value)
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[1] , HIGH );
results.value = 0;
}
else if (1084213303 == results.value)
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[2] , HIGH );
results.value = 0;
}
else if (1084172503 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[3] , HIGH );
results.value = 0;
}
else if (1084205143 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[4] , HIGH );
results.value = 0;
}
else if (1084188823 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[5] , HIGH );
results.value = 0;
}
else if (1084221463 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[6] , HIGH );
results.value = 0;
}
else if (1084168423 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[7] , HIGH );
results.value = 0;
}

else if (1084201063 == results.value )
{
if (durum == 1) {
ledsondur();
}
digitalWrite ( led_dizisi[8] , HIGH );
results.value = 0;
}

else if ( 1084182703 == results.value)
{
ledsondur();
results.value = 0;
}

else if ( 1084170463 == results.value)
{
if (durum == 0) {
ledsondur();
}
durum = 1 ;
}
else if ( 1084176583 == results.value)
{
if (durum == 1) {
ledsondur();
}
durum = 0 ;
}
else if ( 1084174543 == results.value)
{
results.value = 0;
karasimsek();
}
else if ( 1084215853 == results.value)
{
results.value = 0;
flasor();
}
else if ( 1084183213 == results.value)
{
results.value = 0;
disco();
}
else if ( 1084199533 == results.value)
{
results.value = 0;
ss();
}
else if ( 1084166893 == results.value)
{
results.value = 0;
tek();
}
}
void ledsondur() {

for (int i = 0; i < 10; i++) {
digitalWrite(led_dizisi[i], LOW);
}
}

void karasimsek() {
ledsondur();
while (1) {
if (irrecv.decode(&results)) {
irrecv.resume();
}
if ( 1084174543 == results.value || 1084182703 == results.value)
{
results.value = 0;
ledsondur();
break;
}
for (int i = 0; i < 9; i++) { /* Tum LEDleri sirayla 50 milisaniye yakip sonduruyoruz */
digitalWrite(led_dizisi[i], HIGH);
delay(50);
digitalWrite(led_dizisi[i], LOW);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
if ( 1084174543 == results.value)
{
results.value = 0;
ledsondur();
break;
}
for (int j = 8; j > -1; j--)
{ /* LEDleri geri yonde 50 milisaniye yakip sonduruyoruz */
digitalWrite(led_dizisi[j], HIGH);
delay(50);
digitalWrite(led_dizisi[j], LOW);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
}

void flasor () {
ledsondur();
while (1) {
if (irrecv.decode(&results)) {
irrecv.resume();
}
if ( 1084215853 == results.value || 1084182703 == results.value)
{
results.value = 0;
ledsondur();
break;
}
for (int i = 0; i < 4; i++) {
digitalWrite(led_dizisi[i], HIGH);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
delay (100);
for (int i = 0; i < 4; i++) {
digitalWrite(led_dizisi[i], LOW);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
//delay (60);
for (int i = 5; i < 9; i++) {
digitalWrite(led_dizisi[i], HIGH);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
delay (100);
for (int i = 5; i < 9; i++) {
digitalWrite(led_dizisi[i], LOW);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
// delay (60);
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
}

void disco() {
int j = 4;
int d = 0;
int f = 0;
while (1) {
if (irrecv.decode(&results)) {
irrecv.resume();
}
if ( 1084183213 == results.value || 1084182703 == results.value)
{
results.value = 0;
ledsondur();
break;
}
for (int i = 0; i < 5; i++) {
d = j + i;
f = j - i;
digitalWrite(led_dizisi[d], HIGH);
digitalWrite(led_dizisi[f], HIGH);
delay (65);
digitalWrite(led_dizisi[d], LOW);
digitalWrite(led_dizisi[f], LOW);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
for (int i = 4; i > 0; i--) {
d = j + i;
f = j - i;
digitalWrite(led_dizisi[d], HIGH);
digitalWrite(led_dizisi[f], HIGH);
delay (65);
digitalWrite(led_dizisi[d], LOW);
digitalWrite(led_dizisi[f], LOW);

}
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
}
void ss() {
int j = 4;
int d = 0;
int f = 0;
while (1) {
if (irrecv.decode(&results)) {
irrecv.resume();
}
if ( 1084199533 == results.value || 1084182703 == results.value)
{
results.value = 0;
ledsondur();
break;
}
for (int i = 0; i < 5; i++) {
d = j + i;
f = j - i;
digitalWrite(led_dizisi[d], HIGH);
digitalWrite(led_dizisi[f], HIGH);
delay (90);
digitalWrite(led_dizisi[d], LOW);
digitalWrite(led_dizisi[f], LOW);
}
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
}
void tek() {
while (1) {
if (irrecv.decode(&results)) {
irrecv.resume();
}
if ( 1084166893 == results.value || 1084182703 == results.value)
{
results.value = 0;
ledsondur();
break;
}

for (int i = 0; i < 9; i = i + 2) {
digitalWrite(led_dizisi[i], HIGH);
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
delay (500);
for (int i = 0; i < 9; i = i + 2) {
digitalWrite(led_dizisi[i], LOW);
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
for (int i = 1; i < 9; i = i + 2) {
digitalWrite(led_dizisi[i], HIGH);
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
delay (500);
for (int i = 1; i < 9; i = i + 2) {
digitalWrite(led_dizisi[i], LOW);
if (irrecv.decode(&results)) {
irrecv.resume();
}
}
}
}

 

You may also like...

%d bloggers like this: