Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Измерение длинны посредством инкрементального энкодера и фотометки.
- //Энкодер PIB3806-360-G5-24C, на 600 импулсов на оборот, длина окружности измерительного колеса 200мм
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x27,16,2);
- volatile long P; // количество счетчика прерываний с енкодера
- float E; // длина по енкодеру
- pinMode(2, INPUT_PULLUP); // вход сигнала А с энкодера
- pinMode(3, INPUT_PULLUP); // вход сигнала с маркера
- void setup() {
- attachInterrupt(0,enkoder,FALLING); // 1 прерывание с энкодера
- attachInterrupt(1,marker,FALLING); // 2 прерывание с энкодера
- lcd.begin(); // инициализация экрана
- lcd.backlight(); // вкл. подсветки
- }
- void loop() // Oбработка вывода на екран и длины с энкодера
- {
- lcd.setCursor(0,0); // устанавливаем курсор, 1 позиция 0 строка
- lcd.print("Size="); // пишем Size=
- E=P*0.333 ; // расчет длины с енкодера, коефициент= длина окружности колесика на 200/600=0,33
- lcd.print(E,3); // выводим значение E
- }
- void enkoder(){ // обработчик прерывания c энкодера
- P=P+1; // инкремент счетчика импульсов энкодера
- }
- // Przerwanie dla markera (wykrycie markera)
- void marker() { // обработчик прерывания c энкодера
- marker = true; // инкремент счетчика импульсов энкодера
- }
Advertisement
Add Comment
Please, Sign In to add comment