/* rpm için 30000 * 0.001 pot için x * 0.02932551 gaz1 ile rpm1 kıyaslanacak değerler */ #include LiquidCrystal_I2C lcd(0x27, 20, 4); int val; long last = 0; int stat = LOW; int stat2; int contar = 0; int displayrpm; int sens = 100; //gecikme int nPalas = 2; // kaç alıcı bulunduğu int milisegundos = 520; // ne kadar yüksekse okdar stabil ekran //******************************************************************************************************************************************************* // #include //-------------------------------------------------servo 1 Servo servo1; const byte potansiyometre = A1; // ---------------------------------------pot1 A1 int potkonumu; int rpm1; int potkonumu1; int pot1yeni; int derece; //******************************************************************************************************************************************************* void setup() { // potkonumu = analogRead(potansiyometre); //int pot1 = map(potkonumu , 0, 1023, 0, 180); servo1.write(0); // //delay(10); Serial.begin(9600); pinMode(13, OUTPUT); // SENSÖRDEN BİLGİ GELİNCE LED YANSIN pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); servo1.attach(3); // servo çıkış pini D11 } //******************************************************************************************************************************************************* void loop() { val = analogRead(0); // hall sensör pini A0 (digitalde çalışmadı) if (val < sens) stat = LOW; else stat = HIGH; digitalWrite(13, stat); if (stat2 != stat) { contar++; stat2 = stat; } if (millis() - last >= milisegundos) { double rps = ((double)contar / nPalas) / 2.0 * 1000.0 / milisegundos; double rpm = ((double)contar / nPalas) / 1.0 * 60000.0 / (milisegundos); displayrpm = rpm ; Serial.println((contar / 2.0)); contar = 0; last = millis(); rpm1 = map(rpm, 0, 7000, 0, 70); // sıkıntısız okunabilecek değer potkonumu1 = map(potkonumu, 0, 1023, 0, 30); // pot ile max ayarlanabilcek değer } //******************************************************************************************************************************************************* potkonumu = analogRead(potansiyometre); int pot1 = map(potkonumu , 0, 1023, 0, 180); derece = map(derece, 0, 180, 0, 180); /*kıyas yapılacak değerler rpm1 ve gaz1 rpm1potkonumu1 servo1 "--" yesil led yak rpm1=potkonumu1 servo1 "sabit" sarı led yak */ rpm1 = potkonumu1; switch (1) { case 1 : digitalWrite(10, HIGH); delay(1000); break; } rpm1 < potkonumu1; switch (2) { case 2: pot1yeni = 0; pot1yeni <= 180; pot1yeni += 3; //limit 0-180; digitalWrite(9, HIGH); delay(1000); break; } rpm1 > potkonumu1; switch (3) { case 3: pot1yeni = 0; pot1yeni <= 180; pot1yeni -= 3; //limit 0-180; digitalWrite(12, HIGH); delay(1000); break; } servo1.write(pot1yeni); // }