откуда подается импульсы к программе
- Войдите на сайт для отправки комментариев
#include <MsTimer2.h>
volatile int colImp = 0; // Счетчик импульсов
volatile int T = 0;
const int ledPin = 2; // Подаю импульсы на 2 нож
volatile long int oldcount = 0; // Для вычисления скорости
volatile float speed1 = 0; // Значение скорости
void setup() {
// Таймер на 4 секунды
Timer1.initialize(1000000);
Timer1.attachInterrupt(Calcspeed);
pinMode(ledPin, INPUT);
digitalWrite(ledPin, HIGH); // Сомневаюсь что нужно HIGH или LOW
attachInterrupt(1, D2Int, RISING);// Прерывание по приходу импульса
MsTimer2::set(100,flash); // Таймер на 1 секундe
MsTimer2::start();
Serial.begin(115200);
}
void loop() {
if (T == 1) // Если прошла 1 секунда тогда
{ Serial.print(colImp);
Serial.print(" ");
Serial.println(speed1);
delay(1000);
colImp = 0; //обнуляем колличество накопленных импульсов
T = 0; // сбрасываем T
}
}
void D2Int()
{
colImp++; // увеличиваем на 1 колличество импульсов
}
void Calcspeed(){
// Вычисление скорости
speed1 = float(colImp - oldcount);
oldcount = colImp;
}
void flash(void){
T = 1; // по прошествию 1 сек
}
Для начала - принято здороваться и говорить пожалуйста, когда просите помощи.
А далее оформить код как принято на форуме, и простите за занудство, но хороше бы услышать описание проекта и проблемы.
Здравсвтуйте совсем запутался с проектом,на вход ардуино подается импульс П образный с частотой от 10 до 20 Гц ,мне нужно чтобы его читать и видит сколько импульсов приходит за опреленное время.вот этот проект нашел в интернете но не могу понять откуда подается импулсь к программе
Здравсвтуйте совсем запутался с проектом,на вход ардуино подается импульс П образный с частотой от 10 до 20 Гц ,мне нужно чтобы его читать и видит сколько импульсов приходит за опреленное время.вот этот проект нашел в интернете но не могу понять откуда подается импулсь к программе
Я бы подумал что сюда:
... или сюда:
ну это понятно он обявляется ledPin что на 2 ножку подается сигнал импульсом но где в программе она используется вот это не могу понять
Здравствуйте.
attachInterrupt(1, D2Int, RISING); // Прерывание по приходу импульса на вход 1 по переднему фронту
при этом переходит переход в обработчик прерывания - D2Int где происходит инкрементирование счетчика
attachInterrupt(1, D2Int, RISING); // Прерывание по приходу импульса на вход 1 по переднему фронту
Предвидя дальнейшие вопросы прокомментирую:
вход 1 - вход прерывания номер 1, attachInterrupt(1, ........ ) - это ножка номер 2
attachInterrupt(1, D2Int, RISING); // Прерывание по приходу импульса на вход 1 по переднему фронту
Предвидя дальнейшие вопросы прокомментирую:
вход 1 - вход прерывания номер 1, attachInterrupt(1, ........ ) - это ножка номер 2
Не все вопросы предвидели значит. А если вторая ножка уже занята шилдом, то тогда какая ножка должна быть и как это указать?
Уже разобрался.. случае с моим UNO, у меня была возможность считывать только со 2-й и 3-й ножек, а они заняты шилдом.
Не подскажете - у меня UNO говорят что 2,3 ножка заняты шилдой значит не будет приниматся импульсы или как
А "шилда" это кто?
Не подскажете - у меня UNO говорят что 2,3 ножка заняты шилдой значит не будет приниматся импульсы или как
шильды шильдам рознь . шильд может накрывать все ноги на Вашей UNO, но при этом использовать некоторые.
шильды шильдам рознь . шильд может накрывать все ноги на Вашей UNO, но при этом использовать некоторые.
Дисплей на моей шилде запускается вот так:
Так что мои прерывательные пины - точно заняты
значений импульсов хочу увидеть на компе через Serial.begin(9600) а LCD вообще не буду использовать
можно собирать импульсы одной дунькой и передавать их на вторую с твоим ТФТ шилдом.