gulenagac

Attiny ile Ağaçları Konuşturma

Attiny mikroişlemcisini kullanarak ağaçlarınızın suya ihtiyacı olup olmadığını anlayabilirsiniz.

Kullanılan malzemeler 8×8 LED Matrix normalde mikroişlemciye bağlanan bacak sayısı çok fazladır . Bundan dolayı kullanılacak bir entegre ile 7219 MAXİM entegresi ile  LED MATRİX in bacak sayısı 3 e düşürülebilir.

gulenagac2

Gerekli Malzemeler

1. 8×8 LED matrix maxim7219 entegreli

2. Attiny85

3. Alttaki devrenin gerçekleştirilmesi gerekmektedir ve Analog  çıkışının attiny85 ın 2. bacağına bağlanmalıdır.

toprak nem sensörü

Sensor Probe diye gösterilen yer Şu şekilde olmalıdır

toprak nem algilama probu

Aşağıdaki bağlantı noktaları ile attiny chipinizi Arduino uno ile programlayabilirsiniz.
  • ATtiny85 Pin 8 – Arduino +5V
  • ATtiny85 Pin 4 – Arduino eksi
  • ATtiny85 Pin 1 – Arduino Pin 10
  • ATtiny85 Pin 5 – Arduino Pin 11
  • ATtiny85 Pin 6 – Arduino Pin 12
  • ATtiny85 Pin 7 – Arduino Pin 13

 

Bağlantı noktaları

  • ATtiny85 Pin1 –> BOŞ
  • ATtiny85 Pin2 –> Sensor A0 (Analog çıkış)
  • ATtiny85 Pin3 –> BOŞ
  • ATtiny85 Pin4 –> GND
  • ATtiny85 Pin5 –> MAX7219 DIN
  • ATtiny85 Pin6 –> MAX7219 CS
  • ATtiny85 Pin7 –> MAX7219 CLK
  • ATtiny85 Pin8 –> +5V

Alttaki resimde benim yaptığım GÜLEN AĞAÇ PROJESİNİN resimleri vardır.

gülenagac10

gülenagac9

gülenagac8

gülenagac7

gülenagac4

gülenagac2

 

Program


//Projemiz www.arduinom.org tarafından yayınlanmıştır.
// Nem ölçme için Kullanılan malzemeler size kalmış 
//sonuçta attiny85 a analog giriş uyugulanması gerekmektedir.  
// Bu analog girişine istediğiniz herhangi bir şekilde değer verebilirsiniz 
// ISI , NEM , IŞIK  gibi değerlerle projemizi şekillendirebilirsiniz.
unsigned char i;
unsigned char j;
/*Port Definitions*/
int Max7219_pinCLK = 2;
int Max7219_pinCS = 1;
int Max7219_pinDIN = 0;

const int analogInPin = 3;
int sensorValue = 0;

unsigned char disp1[2][8]={
{0x00, 0x64, 0x62, 0x02, 0x02, 0x62, 0x64, 0x00},//0
{0x00, 0x22, 0x64, 0x04, 0x04, 0x64, 0x22, 0x00},//1

};



void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
digitalWrite(Max7219_pinCS,LOW);
for(i=8;i>=1;i--)
{
digitalWrite(Max7219_pinCLK,LOW);
digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
DATA = DATA<<1;
digitalWrite(Max7219_pinCLK,HIGH);
}
}


void Write_Max7219(unsigned char address,unsigned char dat)
{
digitalWrite(Max7219_pinCS,LOW);
Write_Max7219_byte(address); //address,code of LED
Write_Max7219_byte(dat); //data,figure on LED
digitalWrite(Max7219_pinCS,HIGH);
}

void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00);
Write_Max7219(0x0a, 0x03);
Write_Max7219(0x0b, 0x07);
Write_Max7219(0x0c, 0x01);
Write_Max7219(0x0f, 0x00);
}



void setup()
{

pinMode(Max7219_pinCLK,OUTPUT);
pinMode(Max7219_pinCS,OUTPUT);
pinMode(Max7219_pinDIN,OUTPUT);
delay(50);
Init_MAX7219();
}


void loop()
{
sensorValue = analogRead(analogInPin);
if(sensorValue<500) happy();
else sad();


}
void happy(){
for(i=1;i<9;i++){
Write_Max7219(i,disp1[0][i-1]);
}
}

void sad(){
for(j=1;j<9;j++){
Write_Max7219(j,disp1[1][j-1]);
}
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.