0
Καλησπέρα. Προσπαθώ να φτιάξω ένα στροφόμετρο με arduino kai 7segment και hall effect sensor. Πήρα τον κώδικα από δύο διαφορετικά σχέδια και τον ένωσα. Ενώ σαν αυτόνομος ο καθ' ένας δουλεύει σωστά , μετά την ένωση μου παρουσιάζει το εξής.
Ρολάρει το το κάθε segment ανά δευτερόλεπτο. Αν αλλάξω το const unsigned long sampleTime = 1000 σε 10 τότε στρώνει αρκετά αλλά δεν κρατάει την τιμή.
Τα site είναιΚώδικας:#include "SevSeg.h" SevSeg sevseg; int hallSensorPin = 10; // connect the hall effect sensor on pin 10 const unsigned long sampleTime = 1000; const int maxRPM = 1260; // maximum RPM for LCD Bar int rpmMaximum = 0; void setup() { byte numDigits = 3; byte digitPins[] = { 11, 12, 13}; byte segmentPins[] = {9, 2, 3, 5, 6, 8, 7, 4}; bool resistorsOnSegments = true; byte hardwareConfig = COMMON_CATHODE; sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments); } void loop() { delay(100); int rpm = getRPM(); if (rpm > rpmMaximum) rpmMaximum = rpm; sevseg.setNumber(rpm, 2); sevseg.refreshDisplay(); } int getRPM() { int count = 0; boolean countFlag = LOW; unsigned long currentTime = 0; unsigned long startTime = millis(); while (currentTime <= sampleTime) { if (digitalRead(hallSensorPin) == HIGH) { countFlag = HIGH; } if (digitalRead(hallSensorPin) == LOW && countFlag == HIGH) { count++; countFlag=LOW; } currentTime = millis() - startTime; } int countRpm = int(60000/float(sampleTime))*count; return countRpm; }
http://www.circuitbasics.com/arduino...play-tutorial/ (για τα segment)
Και
https://create.arduino.cc/projecthub...counter-253ac0 (για τον sensora)
Καμιά βοήθεια;