Bojkas
Vytvořené odpovědi
-
AutorPříspěvky
-
Bojkas
ÚčastníkTak to dělá pořád to stejné, jen s tím, že mi nevím proč propisuje jen polovina displaye. Pokud to vrátím na ten původní kód, tak je to zase v pořádku.
Bojkas
ÚčastníkPS: stačí, když ji deklaruji?
int rpm;
rpm = (rps*60);
lcd.clear();
lcd.print(„Vitr: „);
lcd.print(0.3142*rpm*0.06);
lcd.print(“ km/h“);Bojkas
ÚčastníkAhoj,
ach tak, to mě nenapadlo.
Aleš: zdá se, že závorek je tam dost, vzorec jsem upravil, ale píše mi to, že „rmp“ není deklarované.
exit status 1
‚rpm‘ was not declared in this scope
http://fii.cz/zxfbym// Compute the RPM of a simple DC Motor using a photomicrosensor(PMS) #include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h> #define PMS_PIN A0 // Pin for signal from Photomicrosensor #define LED_PIN 13 //Using Arduino's Internal LED; just as an indicator boolean counted=false; int t1=0,t2=0; int hits=0; int rps=0; LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); void setup(){ pinMode(PMS_PIN, INPUT); pinMode(LED_PIN, OUTPUT); lcd.setBacklightPin(3,POSITIVE); lcd.setBacklight(HIGH); // NOTE: You can turn the backlight off by setting it to LOW instead of HIGH lcd.begin(16, 2); lcd.clear(); } void loop(){ t2 = millis(); if(t2 >= (t1 + 1000)){ rps = hits; hits = 0; t1=t2; } if(digitalRead(PMS_PIN) == HIGH){ if(!counted){ counted = true; hits++; } } else { counted = false; } digitalWrite(LED_PIN, digitalRead(PMS_PIN)); rpm = (rps*60); lcd.clear(); lcd.print("Vitr: "); lcd.print(0.3142*rpm*0.06); lcd.print(" km/h"); }
Bojkas
ÚčastníkVečer zkusím, děkuji.
Každopádně bych rád znal důvod, abych zjistil, kde mohla být případně chyba?
Bojkas
ÚčastníkZatím je to simulované na kolo o průměru 0,1m tzn obvod je 0,31m. zkoušel jsem to přerušovat papírem, zatím jsem na začátku.
Bojkas
ÚčastníkAhoj,
tak jsem nakonec použil IR bránu, která měří otáčky.
Jaký vzorec použít na přepočet z otáček na km/h? Zkusil jsem do kódu zakomponovat „v = 2πr × RPM × (60/1000) km/hr“, nevím proč, ale měří to v násobcích 1,13. :-/
Celý kód:
// Compute the RPM of a simple DC Motor using a photomicrosensor(PMS) #include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h> #define PMS_PIN A0 // Pin for signal from Photomicrosensor #define LED_PIN 13 //Using Arduino's Internal LED; just as an indicator boolean counted=false; int t1=0,t2=0; int hits=0; int rps=0; LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); void setup(){ pinMode(PMS_PIN, INPUT); pinMode(LED_PIN, OUTPUT); lcd.setBacklightPin(3,POSITIVE); lcd.setBacklight(HIGH); // NOTE: You can turn the backlight off by setting it to LOW instead of HIGH lcd.begin(16, 2); lcd.clear(); } void loop(){ t2 = millis(); if(t2 >= (t1 + 1000)){ rps = hits; hits = 0; t1=t2; rpm = (rps*60); lcd.clear(); lcd.print("Vitr: "); lcd.print(0.3142*rpm*0.06); lcd.print(" km/h"); } if(digitalRead(PMS_PIN) == HIGH){ if(!counted){ counted = true; hits++; } } else { counted = false; } digitalWrite(LED_PIN, digitalRead(PMS_PIN)); }
Bojkas
ÚčastníkNo spíše jsem myslel použít už existující řešení například v protokolu X-10.
-
AutorPříspěvky