Помощь в коде. (Датчик холла)
- Войдите на сайт для отправки комментариев
Втр, 02/01/2018 - 21:53
Здравствуйте, помогите пожалуйста дописать скетч, что бы датчик холла считал общее число оборотов. (не в секунду, а за все время)
Знаю что нужно ввести новую переменную, к примеру rpm, и если срабатывает условие датчика то делаем rpm++;
Но как это все записать??? С ардуино начал только вчера знакомиться.
//-----------дисплей-----------
#include <TM74HC595Display.h>
int SCLK = 7;
int RCLK = 6;
int DIO = 5;
TM74HC595Display disp(SCLK, RCLK, DIO);
unsigned char LED_0F[29];
//--------дисплей-------
void setup() {
Serial.begin(9600); //открыть порт
attachInterrupt(0,sens,RISING); //подключить прерывание на 2 пин при повышении сигнала
pinMode(3, OUTPUT); //3 пин как выход
digitalWrite(3, HIGH); //подать 5 вольт на 3 пин
//для дисплея цифры
LED_0F[0] = 0xC0; //0
LED_0F[1] = 0xF9; //1
LED_0F[2] = 0xA4; //2
LED_0F[3] = 0xB0; //3
LED_0F[4] = 0x99; //4
LED_0F[5] = 0x92; //5
LED_0F[6] = 0x82; //6
LED_0F[7] = 0xF8; //7
LED_0F[8] = 0x80; //8
LED_0F[9] = 0x90; //9
}
void sens() {
}
void loop() {
}

Читаете хотя бы это Программирование Ардуино и смело начинаете писать Ваш скетч. А то пока всё выглядит не как "дописать скетч", а как написать всё за Вас. Так не научитесь ничему.
Если свободен таймер1, то можно считать импульсы проще.
Импульсы подавать на D5.
word tcnt1 = 0; void setup(){ TCCR1A = 0; //TCCR1B = (1<<CS12) | (1<<CS11) | (1<<CS10);//счет по перед.фронту TCCR1B = (1<<CS12) | (1<<CS11);//счет по заднему фронту TCNT1 = 0; } void loop(){ //byte oldSREG = SREG; //можно раскомментировать //noInterrupts(); tcnt1 = TCNT1;//в tcnt1 хранятся все импульсы (0-65535) //SREG = oldSREG; //вывод на дисплей }