//#include //#include // model servo: DS3218 PRO #include #include #include #include #include #define Version "0" //ostatnia zmiana: zmiana na PCB, dostrajanie ////2DO: #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) #define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); #define PinInSpeed 0 //on board: RXI #define ServoSwitch 4 //on board: 4 #define ServoPin 8 //on board: 8 #define BrakingLight 9 //on board: 9 BrakingLight #define PinLED 10 //on board: 10 ORANGE loop signal #define Btn1 18 //on board: A0 Button0 #define Btn2 19 //on board: A1 Button1 #define ServoMaxAngle 130 #define MaxAngle 179 #define MinAngle 1 #define MaxGear 8 #define MinGear 1 #define WheelCircumference 2.130 #define MagnetsCnt 4 #define ms2kmh 3.6 #define Pi 3.1416 #define TimeToSleep 180000 //3 min //SPEED int interpt_cnt = 0; void setup() { //SERVO // // Serial.begin(9600); //DIPLAY settings if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { Serial.println(F("SSD1306 allocation failed")); for (;;); // Don't proceed, loop forever } display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); display.clearDisplay(); display.setTextColor(WHITE); display.setRotation(0); display.setTextSize(3); display.setCursor(0, 0); display.println("Version:"); display.setCursor(0, 25); display.println(Version); display.display(); delay(5); //INPUT pinMode(PinInSpeed, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); //Interrupts attachInterrupt(digitalPinToInterrupt(PinInSpeed), diag, FALLING); } void loop() { int local_interpt_cnt = 0; noInterrupts(); local_interpt_cnt = interpt_cnt; interrupts(); display.clearDisplay(); display.println("Interupts cnt: "); display.setCursor(0, 20); display.println(local_interpt_cnt); display.setTextSize(2); display.display(); delay(500); } void diag(){ interpt_cnt = interpt_cnt +1; }