dodanie 4magnesów - 8 ttl
bugfix liczenia odległosci z odczytu magnesu
This commit is contained in:
Kamil Siejka
2024-10-22 20:57:37 +02:00
parent 0ee717b9b4
commit 6627f545fe

View File

@@ -1,4 +1,3 @@
#include <avr/eeprom.h> #include <avr/eeprom.h>
#include <Servo.h> // model servo: DS3218 PRO #include <Servo.h> // model servo: DS3218 PRO
#include <SPI.h> #include <SPI.h>
@@ -7,7 +6,7 @@
#include <Adafruit_GFX.h> #include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h> #include <Adafruit_SSD1306.h>
#define Version "1.13.19" #define Version "1.14.0"
////2DO: ////2DO:
//pomiar napięcia na baterii //pomiar napięcia na baterii
// menu do zmiany zakresu predkosci biegów // menu do zmiany zakresu predkosci biegów
@@ -33,7 +32,7 @@ Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define MaxGear 8 #define MaxGear 8
#define MinGear 1 #define MinGear 1
#define WheelCircumference 2.130 #define WheelCircumference 2.130
#define MagnetsCnt 4 #define MagnetsCnt 8
#define ms2kmh 3.6 #define ms2kmh 3.6
#define Pi 3.1416 #define Pi 3.1416
#define TimeToSleep 5000 //5 sec #define TimeToSleep 5000 //5 sec
@@ -90,7 +89,7 @@ int run_mins = 0;
//DST //DST
int totalDistMemLocation = 60; int totalDistMemLocation = 60;
int loop_cnt = 0; int loop_cnt = 0;
unsigned int totalDist = 0; double totalDist = 0.0;
unsigned int totalDistReaded = 0; unsigned int totalDistReaded = 0;
unsigned int totalDistWrited = 0; unsigned int totalDistWrited = 0;
//BATTERY //BATTERY
@@ -281,9 +280,9 @@ void loop() {
//TTL DST //TTL DST
// totalDist = 0; // totalDist = 0;
loop_cnt = loop_cnt +1; loop_cnt = loop_cnt +1;
if (loop_cnt >= 10 && totalDistWrited != totalDist ){ if (loop_cnt >= 20 && totalDistWrited != totalDist ){
eeprom_write_block(&totalDist,totalDistMemLocation,2); eeprom_write_block(&totalDist,totalDistMemLocation,2);
totalDistWrited = totalDist; totalDistWrited = int(totalDist);
loop_cnt = 0; loop_cnt = 0;
} }
} }
@@ -303,7 +302,7 @@ void calcSpeed() {
speed = speed_last_3; speed = speed_last_3;
} }
speed = (speed + speed_last)/2; speed = (speed + speed_last)/2;
totalDist = totalDist + 1; totalDist = totalDist + (1/MagnetsCnt);
} }
void calcGear() { void calcGear() {
@@ -435,7 +434,7 @@ void prepareTurnOff() {
totalDistWrited = totalDist; totalDistWrited = totalDist;
loop_cnt = 0; loop_cnt = 0;
for (; 1500 < (millis() - lastMillisSpd);) { // zmiana z 1000 na 1500 w 1.13.X for (; 1500 < (millis() - lastMillisSpd);) { // zmiana z 1000 na 1500 w 1.13.19
digitalWrite(ServoSwitch, LOW); digitalWrite(ServoSwitch, LOW);
digitalWrite(ServoPin, LOW); digitalWrite(ServoPin, LOW);
//INFO //INFO