Skocz do zawartości

Odwrotność charakterystyki czujnika- jak zrobić?


Chris18404

Pomocna odpowiedź

Mam czujnik mq-131 który po wykryciu gazu wyświetla wartości w dół a nie do góry . Chciałbym aby wyświetlało wartości wzrastające po wykryciu gazu. Przykładowo ustawić stałą 200 , gdy czujnik ma wartość 120 chciałbym aby pokazało 80 , gdy czujnik ma wartość 100 , żeby pokazywało wartość 100 itd. Nie muszę mieć faktycznych wartości które się zgadzają , zalezy mi żeby wartości wzrastały . Bardzo proszę o pomoc jak to zrobić.

https://megawrzuta.pl/download/f9977a7d22bcc70a027e2f575b7f9e55.html

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A my z kolei nie wiemy w jakim programie więc jesteśmy kwita.

wrzuciłem na hosting program.

int sensor_AOUT = A1; //podłączenie od AOUT na czujniku do A1 na Arduino

int sensor_DOUT = 8; //podłączenie od DOUT na czujniku do pinu 2 na Arduino

int wartosc_AOUT; //zmienna dla wartości AOUT

int wartosc_DOUT; //zmienna dla wartości DOUT

void setup() {

Serial.begin(9600); //uruchomienie monitora szeregowego

pinMode(8, INPUT); //ustawienie pinu 2 jako wejście

}

void loop() {

wartosc_AOUT = analogRead(sensor_AOUT); //pobranie wartości z AOUT

wartosc_DOUT = digitalRead(sensor_DOUT); //pobranie wartości z DOUT

Serial.print("D0: "); //wyświetlenie na monitorze szeregowym

Serial.print(wartosc_DOUT);

Serial.print(" -- A0: ");

Serial.println(wartosc_AOUT);

delay(200);//opóźnienie pomiędzy kolejnymi odczytami

__________

Komentarz dodany przez: Treker

Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum.

Link do komentarza
Share on other sites

DOUT cię nie obchodzi, to wartość wczytana z jakiegoś pinu cyfrowego.

A konwersję AOUT możesz robić w locie, w jednym wyrażeniu:

wartosc_DOUT = 200 - digitalRead(sensor_DOUT);

albo po kolei:

wartosc_DOUT = digitalRead(sensor_DOUT); //pobranie wartości z DOUT 
wartosc_DOUT = 200 - wartosc_DOUT;

albo przy użyciu kolejnej zmiennej:

int prawdziwy_czujnik;
wartosc_DOUT = digitalRead(sensor_DOUT); //pobranie wartości z DOUT
prawdziwy_czujnik = 200 - wartosc_DOUT;
Serial.println(prawdziwy_czujnik);

Wygląda, że zamiast przerobić jakiś kurs programowania Arduino wziąłeś się za bezmyślne kopiowanie kodów z sieci. No to masz wynik: kompletna bezradność przy najprostszej rzeczy. Bo problemem tego nazwać przecież nie można.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.