Помощь в коде. (Датчик холла)

CLAWS
Offline
Зарегистрирован: 02.01.2018

Здравствуйте, помогите пожалуйста дописать скетч, что бы датчик холла считал общее число оборотов. (не в секунду, а за все время)
Знаю что нужно в
вести новую переменную, к примеру 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() {
	
}

kalapanga
Offline
Зарегистрирован: 23.10.2016

Читаете хотя бы это Программирование Ардуино и смело начинаете писать Ваш скетч. А то пока всё выглядит не как "дописать скетч", а как написать всё за Вас. Так не научитесь ничему.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Если свободен таймер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;
  //вывод на дисплей
}