Porównanie odczytanych wartości na analogowych wejściach

Zrobiłeś coś fajnego z wykorzystaniem Arduino? Pochwal się tym!
ODPOWIEDZ
Awatar użytkownika
szczepulek
Młodszy majsterkowicz
Posty: 18
Rejestracja: 29 mar 2015, 01:47

Porównanie odczytanych wartości na analogowych wejściach

Post autor: szczepulek » 31 mar 2015, 09:11

witam, skromny szkic porównania odczytu analogowych wejść (nawet nie podłączonych do niczego)

może komuś się przyda :) np. do porównania napięć dwóch identycznych układów stabilizacyjnych, kanałów audio..

Kod: Zaznacz cały

#define LED 13 //dioda dla diagnostyki
int a = 0; //wynik pierwszego wybranego wej analogowego x raz większ od wartości na wej analogowym drugim 
int b = 0; // jak wyżej tym razem druga wartość x razy wieksza od pierwszej w przedziale czasowym
int an0 = 0; // wartość początkowa 0 dla pierwszego z wybranych wejsc analogowych
int an1 = 0; //j.w. dla drugiego wybranego wej analogowego
int wejA = A0; // podaj nazwę (A0, A1, A2, A3, A4, A5) dla pierwszego WEJSCIA ANALOGOWEGO do porównania
int wejB = A0; // podaj nazwę (A0, A1, A2, A3, A4, A5) dla drugiego WEJSCIA ANALOGOWEGO do porównania

void setup()
{
  Serial.begin(9600);
  pinMode (LED, OUTPUT); //led diagnost na pinie 13 jako wyjscie
}

void loop()
{
an0 = analogRead(wejA); // odczyt wartości na pierwszym z wybranych pinow 
an1 = analogRead(wejB); // odczyt wartości na drugim z wybranych pinow

if ( an0 > an1 ) //jesli an0 jest większy od an1
  {
  // print it out in many formats:
  Serial.print(an0);         // print odczytana wartosc an0
  Serial.print("\t");                // print a tab character
  Serial.print(">");    // print znak Wiekszy
  Serial.print("\t");                // print a tab character
  Serial.print(an1);    // print odczytana wartosc kolejnego pinu an1
  Serial.print("\t");                // print a tab character
   
  a == a++; //dodaj +1 dla pierwszego wybranego wejscia
  }
  else //w innym wypadku jesli an0 jest rowne lub mniejsze od an1
  {
      Serial.print(an0);       
  Serial.print("\t");  
  Serial.print("<");    // print znak Mniejszy
  Serial.print("\t");                
  Serial.print(an1);   
  Serial.print("\t");                // print a tab character

  b == b++; //dodaj +1 dla drugiego wybranego wejscia (wynik porownania)
  }

// wyswietlenie wynikow jak na meczu ile do ilu ;-)
  Serial.print("\t"); 
  Serial.print(a);    
  Serial.print("\t");        
  Serial.println(b); 
  // delay pol sekundy
  delay(500);
  
  //zapetlenie migajacej diody
  int ok = 1;
if (ok == 1 )
{
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(310);
}
}
Ciekawostka, u mnie w 90% był większy odczyt z A0 w porównaniu do A1, natomiast w porównaniu A0 do A5, A0 wył większy tylko w 1% przypadków :)

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


ODPOWIEDZ

Strony partnerskie: