yldrm byzt
Üye
- Katılım
- 28 Ara 2019
- Mesajlar
- 86
- Puanları
- 1
Arduınoda örnek 7 segment display 0-99 sayıcı kodlamasında d1-d13 arası pinlerinin tamamı kullanılmış.
Benim çalışmamda ise d0, d1, d2, d3, d4 pinlerini başka bir komponent pini olarak kullanacağım için 0-99 sayıcı için d0, d1, d2, d3, d4 pinlerinin yerine A0, A1, A2, A3, A4, A5, analog pinlerini kullanmak istiyorum. Kodlamada nasıl bir değişiklik yapmalıyım?
örnek kodlama aşağıdadır.
Benim çalışmamda ise d0, d1, d2, d3, d4 pinlerini başka bir komponent pini olarak kullanacağım için 0-99 sayıcı için d0, d1, d2, d3, d4 pinlerinin yerine A0, A1, A2, A3, A4, A5, analog pinlerini kullanmak istiyorum. Kodlamada nasıl bir değişiklik yapmalıyım?
örnek kodlama aşağıdadır.
Kod:
void setup()
{
for (int i = 0; i <= 13; i++)
pinMode(i, OUTPUT); //Set all pins from 0 to 13 as OUTPUT
}
//The line below is the array containing all the binary numbers for the digits on a SSD from 0 to 9
const int number[11] = {0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000};
void loop()
{
for (int tens = 0; tens < 10; tens++)
{
display_tens(tens);
}
}
void display_tens(const int tens)
{
int pin1, a, ones;
//pin1 is just used to deal with pins of the 1st SSD which desplays the tens digit
for (pin1 = 0, a = 0; pin1 < 7; pin1++, a++)
{
digitalWrite(pin1, bitRead(number[tens], a));
}
for (ones = 0; ones < 10; ones++)
{
display_ones(ones);
delay(300);
//I have given a delay of 300 milliseconds. You can put your own Time!!
}
}
void display_ones(const int x)
{ int pin2, b;
//pin2 is just used to deal with pins of the 2nd SSD which desplays the ones digit
for (pin2 = 7, b = 0; pin2 <= 13; pin2++, b++)
{
digitalWrite(pin2, bitRead(number[x], b));
}
}
Son düzenleme: