Wpis z mikrobloga

Mam problem z #arduino . Załączam kod programu.
Nie potrafię poradzić sobie z konfliktem pomiędzy obsługą wyświetlaczy a wykonywaniem przerwań wywoływanych przez sygnał dostarczanych na pin D2. Jeśli zakomentuję część odpowiedzialną za wyświetlacze, to przerwania działają i na serial porcie mogę odczytać wartość zmiennej "speed" i ta odczytana wartość jest jak najbardziej sensowna. Zaś jeśli zostawię obsługę wyświetlaczy, to wyświetlacz nr 2 wyświetla zawartość zmiennej "speed" tylko że jest to bezwartościowe, bo sam wyświetlacz tak jakby uruchamia przerwania więc wartość w "speed" jest zinkrementowana do absurdalnych wartości.

Domyślam się, że muszę zmienić
LiquidCrystalI2C lcd1(LCD1Address, 2, 1, 0, 4, 5, 6, 7);
LiquidCrystal
I2C lcd2(LCD2Address, 2, 1, 0, 4, 5, 6, 7);
tak aby nie korzystały z pinu nr 2 tylko że nie bardzo wiem, jak to zrobić. Wyświetlacze 16x2 nie są podpięte bezpośrednio pod Leonardo, ale przy pomocy I2C, tzn przez taki adapter jak na tym zdjęciu.
  • 4
LiquidCrystalI2C lcd2(LCD2Address, 2, 1, 0, 4, 5, 6, 7);


@PlantatorCebuli: wgl to co to za sygnatura. W kilku docsach, które przejrzałem jest tylko taki konstruktor

LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);
@zwei: Zmieniłem pin do przerwań z 2 na 1 i odczyt na serial porcie działa, ale nadal nie potrafię tego wyświetlić, bo po zmianie na LiquidCrystal_I2C lcd1(LCD1Address, 16, 2); wyświetlacz nie reaguje, tzn podświetla się ale nic nie wyświetla. :(