int LE = 2;
int CLOCK = 3;
int DATA = 4;

void setup()
{
  pinMode(LE, OUTPUT);
  pinMode(CLOCK, OUTPUT);
  pinMode(DATA, OUTPUT);
}

void loop()
{
  int value;   // Wartość tłumienia od 0 do 32.
  int ms = 1000; // czas zmiany kolejnego tłumika
 
 for (value = 0; value <= 32; value++)
   {
    Serial.print(value);
    Serial.println(" dB");

    setAttenuator(value);
    delay(ms); // czekaj 1 sekundę
   }


for (value = 32; value >= 0; value--)
   {
    Serial.print(value);
    Serial.println(" dB");

    setAttenuator(value);
    delay(ms);
   }
}



void setAttenuator(int value)
{
  int level;
  
if (value < 0 || value > 32)
    return;
 
  digitalWrite(LE, LOW);
  digitalWrite(CLOCK,LOW);

 

for (int bit = 5; bit >= 0; bit--)
   {
    level = ((value << 1) >> bit) & 0x01;

    digitalWrite(DATA, level);
    digitalWrite(CLOCK, HIGH);
    digitalWrite(CLOCK, LOW);
   }


digitalWrite(LE, HIGH);
digitalWrite(LE, LOW);

}



Dodaj komentarz






Dodaj

Poradnik Elektronika
© 2013-2024 PRV.pl
Strona została stworzona kreatorem stron w serwisie PRV.pl