Я тотальный нуб в ардуино и схемотехнике, поэтому такой вопрос: Как я понимаю, обычно обрабатывается сигнал с сенсора и происходят, в зависимости от этого, действия. Мне нужно, что бы действия произошли не просто из-за сигнала, а в зависимости от последовательности сигналов. То есть запоминать и считать импуты, например, 5 импутов подряд, и оутпут получаем в зависимости от того какие значения принимали импуты. Напоминаю опять, я очень новенький в этом всем, так что не знаю, можно ли программно следить за значениями и количеством, (например, заносить в массив значения + вести счет) и на нужном счете обнулить массив и собственно каунтер. Или так не получится и нужно какие-то более низкоуровневые механизмы использовать. Просветите. И да, опыт программирования есть. Извините за туманную формулировку и обрусированные английские слова(не придумал сходу как по другому).
PHP: #define ADC_PIN A0; int i; int val; char SENSOR_VALUE; int VALUE; void valuemaker() { begin: SENSOR_VALUE[i] = analogRead(ADC_PIN); i++; if (i => 5) { VALUE = (SENSOR_VALUE[0] + SENSOR_VALUE[1] + SENSOR_VALUE[2] + SENSOR_VALUE[3] + SENSOR_VALUE[4] / 5); } goto begin; } void.setup() { Serial.begin(9600); } void.loop() { while (val <5) { delay(10); valuemaker(); val++; } Serial.print("Value = "); Serial.println(VALUE); VALUE = 0; i = 0; val = 0; } Конечно кривовато чуток, но писал на скорую руку, надеюсь будет работать Я вообще любитель написать такую программу, которую только я пойму
Спасибо, выглядит как то что нужно! И теперь нужно после достижения 5ти и выведения (print) обнулить показатели, т.к. работа не заканчивается, мне нужны следующие суммы значений. Но это, кажется, не сложно уже сделать, так? Еще раз спасибо, думал уже нырять очень глубоко, что б сделать, но все намноого проще!
ИЗВИНЯЮСЬ код неверный, работать не будет, в чём проблема - не понимаю. лучше сами код напишите, если поняли, как это делается
Код не пробовал, волнует вопрос сохранения предыдущих импутов. Посмотрел по тщательней, есть несколько проблем: неиспользуемая переменная kolichestvo SENSOR_VALUE объявляете как int, а потом используете как массив. Так можно в processing? задаете переменную var, но нигде не используете, потому что опечатались, как я понимаю, на val (Val и val одно и то же?) Ну это без проверки логики.
val и Val - это разное, а код я писал на iPad'е, на скорую руку, без вожможности проверки правильности, и параллельно смотрел телик
Ну, я вроде отредактировал сообщение с кодом ещё чутка, но не получается всё равно. Выдаёт ошибку: Код (Text): sketch_sep03a.cpp: In function 'void valuemaker()': sketch_sep03a:7: error: invalid types 'char[int]' for array subscript sketch_sep03a:7: error: expected `)' before ';' token sketch_sep03a:7: error: expected primary-expression before ')' token sketch_sep03a:7: error: expected `;' before ')' token sketch_sep03a:9: error: expected primary-expression before '>' token sketch_sep03a:10: error: invalid types 'char[int]' for array subscript sketch_sep03a:10: error: invalid types 'char[int]' for array subscript sketch_sep03a:10: error: invalid types 'char[int]' for array subscript sketch_sep03a:10: error: invalid types 'char[int]' for array subscript sketch_sep03a:10: error: invalid types 'char[int]' for array subscript sketch_sep03a.cpp: At global scope: sketch_sep03a:14: error: expected unqualified-id before '.' token sketch_sep03a:17: error: expected unqualified-id before '.' token Да мне щас некогда разбираться со всем этим. дел по горло. Да и возможности проверить всё это на дуне нету, она на даче осталась, а я в Москве Потом проверю.
Код (Text): int i; int val; char* SENSOR_VALUE; // int VALUE; void valuemaker() { begin: SENSOR_VALUE[i] = analogRead(A0); i++; if (i >= 5) { VALUE = (SENSOR_VALUE[0] + SENSOR_VALUE[1] + SENSOR_VALUE[2] + SENSOR_VALUE[3] + SENSOR_VALUE[4] / 5); } goto begin; } void setup() { // void setup пишется раздельно и без точек Serial.begin(9600); } void loop() { // void loop пишется раздельно и без точек while (val < 5) { delay(10); valuemaker(); val++; } Serial.print("Value = "); Serial.println(VALUE); VALUE = 0; i = 0; val = 0; } } Долго мучился! Код работающий!