Одновременный удар
- Войдите на сайт для отправки комментариев
Пт, 27/10/2017 - 02:17
Ребят всем привет! В общем столкнулся с такой проблемкой (я новичёк), скетч написал для того что бы при ударе по пьезику (их два), слать символы в монитор порта, символы то он шлёт только вот происходит затык, когда я одновременно сразу по двум пьезо ударяю, ни как не могу понять, что к чему и решить эту делемку. В общем сам скетч есть, в идеале если я ударю одновременно по двум сразу то в монитор должно прилетель 0 1 или 1 0, я так понял в зависемости от того, какого пьезика палец коснулся первым. Подскажите ребят......
int sensor1 = analogRead(A0); int sensor0 = analogRead(A3); long time0 = 0;// обьявляем переменную времени long time1 = 0;// void setup() { Serial.begin(9600); // скорость комп порта } void loop() { if ((sensor0) > 800) // цыфра это порог срабатывания пьезика { if (millis() >= (time0+30)) { // если прошло 30 милисекунд то посылаем Serial.print("0"); //Serial.println(sensor0); time0=millis(); // засекаем время } } if ((sensor1) > 800) // цыфра это порог срабатывания пьезика { if (millis() >= (time1+30)) { // если прошло 30 милисекунд то посылаем Serial.print("1"); //Serial.println(sensor1); time1=millis(); // засекаем время } } }
на прерываниях делай, так будет правильнее. И прочитай тему про переполнение millis()
Sorry, код читалъ падиаганале.
Неправильно объявлены sensor1 sensor0. В loop вместо них analogRead используйте прямо.
херню вы написали . Потеряли флаги у аналоговых сигналов 1 и 2.
Motrosoff,
1. То, что Вы написали словами, совершенно не соответствует тому, что Вы написали в скетче.
2. Вы забыли привести схему подключения.
Это к тому, что если бы схема подключения была правильной, то Вы вообще никогда никаких символов в Serial бы не получали (и, вероятно, быстрее бе сообразили, где ошибка). А раз получаете, то не в порядке не только скетч, но и схема (когда ошибок более одной, их намного труднее локализовать).
Еще крайне рекомендую подробно написать словами, как по Вашему мнению должен работать скетч.
символы то он шлёт
Непнятно только с какого перепугу.
А кто в loop будет сенсоры за Вас читать?
Этот код я обрезал от того кода который был.
Дело в том что есть две стороны, левая и правая, левая передающая правая принимающая (передаётся сигнал по радиомодулю NRF24l01 и принимается тоже этим модулем, правой стороной). У каждой стороны есть по два пьезика. Левая сторона посылает либо "1" либо "0" а правая (если ударять по пьезику) в монитор порта порта посылает "2" и "3" символы...вот только когда я пытаюсь одновременно ударить по двум разным пьезикам то в монитор ни чего не приходит или приходит но как то не уверенно....
Ну, это Ваша проблема. Я смотрю тот код, который Вы показали. Если предпочитаете хранить секреты, а нам показываете "фуфло для лохов", то сами себе и помогайте.
[quote=ЕвгенийП]
Ну, это Ваша проблема. Я смотрю тот код, который Вы показали. Если предпочитаете хранить секреты, а нам показываете "фуфло для лохов", то сами себе и помогайте.