"Шум" аналоговых входов.
- Войдите на сайт для отправки комментариев
Вс, 05/11/2017 - 15:38
Доброго дня!
Столкнулся с большой проблемой, очень шумят аналоговые входа (грешу на Б/П).
Нужно считать данные с датчиков (9 штук), нашел программу которая очень хороше с этим справляется, а вот как её настроить на 9 штук непонимаю.
Буду признателен если подскажете.
int sensorPin = A0; // номер аналогового входа // функция считывает аналоговый вход заданное количество раз // и возвращает отфильтрованное значение int readMean(int pin, int samples){ // переменная для хранения суммы считанных значений int sum = 0; // чтение и складывание значений for (int i = 0; i < samples; i++){ sum = sum + analogRead(pin); } // делим сумму значений на количество измерений sum = sum/samples; // возвращаем среднее значение return sum; } // функция считывает аналоговый вход заданное количество раз // и возвращает медианное отфильтрованное значение int readMedian (int pin, int samples){ // массив для хранения данных int raw[samples]; // считываем вход и помещаем величину в ячейки массива for (int i = 0; i < samples; i++){ raw[i] = analogRead(pin); } // сортируем массив по возрастанию значений в ячейках int temp = 0; // временная переменная for (int i = 0; i < samples; i++){ for (int j = i; j < samples - 1; j++){ if (raw[j] > raw[j + 1]){ temp = raw[j]; raw[j] = raw[j + 1]; raw[j + 1] = temp; } } } // возвращаем значение средней ячейки массива return raw[samples/2]; } void setup(){ Serial.begin(9600); } void loop(){ // выводим значение на аналоговом входе в монитор порта Serial.print(analogRead(sensorPin)); Serial.print(" "); // выводим среднеизмеренное значение Serial.print(readMean(sensorPin, 15)); Serial.print(" "); // выводим медианное отфильтрованное значение Serial.println(readMedian(sensorPin, 15)); delay(100); }
Может так
Спасибо!!!
Буду пробывать....
Я думал ч то Ваш скетч рабочий поэтому и предложил продолжение опроса по вашему коду. Но скорей всего надо ТАК
Хтя не правильно бопробуйте так А если не получится то пишете что именно не так
И еще не гоните проверку сразу на все 9 пинов. Попробуйте сначала на 3
Я думал ч то Ваш скетч рабочий поэтому и предложил продолжение опроса по вашему коду. Но скорей всего надо ТАК
Вы еще не поняли основной принцип последних новорегов? Я расскажу: нашёл в инетке любой говноскетч, не проверяй, не разбирайся - просто тащи на ардуино.ру и пиши, что надо сделать. А рисовать что и куда подключено... слишком много чести для ботанов, которые помогают. Они сами все додумают, отмакетируют и поправят. А когда весь код отполируют - следует написать, что на его Arduino Mini Pro только пять аналоговых входов и нихера их ботанский скейтч не работает как заказывалось.
И еще не гоните проверку сразу на все 9 пинов. Попробуйте сначала на 3
Вот я проверил на з пина -смотрите
Я думал ч то Ваш скетч рабочий поэтому и предложил продолжение опроса по вашему коду. Но скорей всего надо ТАК
Вы еще не поняли основной принцип последних новорегов? Я расскажу: нашёл в инетке любой говноскетч, не проверяй, не разбирайся - просто тащи на ардуино.ру и пиши, что надо сделать. А рисовать что и куда подключено... слишком много чести для ботанов, которые помогают. Они сами все додумают, отмакетируют и поправят. А когда весь код отполируют - следует написать, что они на его Arduino Mini Pro только пять аналоговых входов и нихера их ботанский скейтч не работает как заказывалось.
Да я все понимаю но человек старается вон даже график привел
Да я все понимаю но человек старается вон даже график привел
Цельнотянутый с http://geekmatic.in.ua/filtracia_shumov_analogovogo_signala
В моем понимании стараться - это как-то иначе. Впрочем, время ваше - тратьте как хотите.
Большое спасибо!!!
Работает. Буду пробывать на 9 пинов и в XL график.
Первоначальный скетч работает, но только на один пин.
Как бутто вы небыли ботаном и не обращались за помощю к компетентным людям.
Слаб я еще в програмировании, но это можно исправить.
В 80 я сидел в технических библиотеках и искал инфу в книгах, а сейчас блогодоря интернету и хорошим людям учиться невыходя из дома гораздо проще и быстрей.
Все мы когдато писали в пиленки......
Я думал ч то Ваш скетч рабочий поэтому и предложил продолжение опроса по вашему коду. Но скорей всего надо ТАК
Вы еще не поняли основной принцип последних новорегов? Я расскажу: нашёл в инетке любой говноскетч, не проверяй, не разбирайся - просто тащи на ардуино.ру и пиши, что надо сделать. А рисовать что и куда подключено... слишком много чести для ботанов, которые помогают. Они сами все додумают, отмакетируют и поправят. А когда весь код отполируют - следует написать, что на его Arduino Mini Pro только пять аналоговых входов и нихера их ботанский скейтч не работает как заказывалось.
Вот кому заняться нечем и пишет такое, наверно человек забыл когда впервые взял в руки ардуино
Да я все понимаю но человек старается вон даже график привел
Цельнотянутый с http://geekmatic.in.ua/filtracia_shumov_analogovogo_signala
В моем понимании стараться - это как-то иначе. Впрочем, время ваше - тратьте как хотите.
Я так понимаю у вас его много, лучше помогли бы, а не демагогию разводили.
И еще не гоните проверку сразу на все 9 пинов. Попробуйте сначала на 3
Вот я проверил на з пина -смотрите
Еще раз СПАСИБО!!! Работает на всех 9
Я так понимаю у вас его много, лучше помогли бы, а не демагогию разводили.
Если бы я брал доллар каждый раз, когда слышал "лучше бы ты сделал <вписать нужное> за меня", я уже скупил бы половину Техаса.
Я так понимаю у вас его много, лучше помогли бы, а не демагогию разводили.
Если бы я брал доллар каждый раз, когда слышал "лучше бы ты сделал <вписать нужное> за меня", я уже скупил бы половину Техаса.
Если бы у бабушки был Х..., она была бы дедушкой.
В 80 я сидел в технических библиотеках и искал инфу в книгах, а сейчас блогодоря интернету и хорошим людям...
... можно просто поклянчить, чтобы сделали за меня" - верно?
"Учиться в интернете" - это значит сидеть и читать учебники, шерстить гугль и изучать чужие коды. Это действительно проще и быстрее, чем ходить в библиотеку - потому что все под рукой и никуда ходить не надо.
А вот если ты вместо минутного поиска в гугле идешь на форум и задаешь элементарный вопрос - это не значит "учиться", это нахлебничать.
В 80 я сидел в технических библиотеках и искал инфу в книгах, а сейчас блогодоря интернету и хорошим людям...
... можно просто поклянчить, чтобы сделали за меня" - верно?
"Учиться в интернете" - это значит сидеть и читать учебники, шерстить гугль и изучать чужие коды. Это действительно проще и быстрее, чем ходить в библиотеку - потому что все под рукой и никуда ходить не надо.
А вот если ты вместо минутного поиска в гугле идешь на форум и задаешь элементарный вопрос - это не значит "учиться", это нахлебничать.
Каждый судит по себе.
Добрый вечер!
Хочу предложить коммерческое предложение по написанию программы.
Бюджет 15 т.р.
ТЗ подготовил.
Если интересно пишите на luck2071@yandex.ru
Мужики, а кто-нибудь может объяснить мне глубокий сермяжный смысл реализации в строках №№ XЗ - (ХЗ+10) скетча из первого поста сортировки методом пузырька, когда под рукой имеется библиотечная функция qsort - которая а) уже готова и б) заметно быстрее работает?
Хочу предложить коммерческое предложение по написанию программы.
Для таких предложений есть специальный раздел. Многие из тамошних завсегдатаев других разделов не читают. так что лучше Вам запостить там.
Мужики, а кто-нибудь может объяснить мне глубокий сермяжный смысл реализации в строках №№ XЗ - (ХЗ+10) скетча из первого поста сортировки методом пузырька, когда под рукой имеется библиотечная функция qsort - которая а) уже готова и б) заметно быстрее работает?
Может "пузырек" более теплый и ламповый...
А ТС я писал, хотел ТЗ почитать - не отвечает.
Спасибо!
Мужики, а кто-нибудь может объяснить мне глубокий сермяжный смысл реализации в строках №№ XЗ - (ХЗ+10) скетча из первого поста сортировки методом пузырька, когда под рукой имеется библиотечная функция qsort - которая а) уже готова и б) заметно быстрее работает?
А можно в цифрах - насколько именно быстрее?
(на Pentium+ в данном конкретном случае пузырек работал бы быстрее, насчет AVR - не знаю)
А можно в цифрах - насколько именно быстрее?
В среднем
O(n2) против O(n x log(n))
А можно в цифрах - насколько именно быстрее?
В среднем
O(n2) против O(n x log(n))
О() - имеет значение лишь для величин, стремящихся к бесконечности. Для конечных величин нужно считать точнее.
Итак:
Время пузырька C1*N^2
Время Хоара C2*N*log(N)
Даже глядя на код, не трудно сообразить, что C1<<C2 (где "<<" означете не сдвиг, а "много меньше").
У ТС длина сортируемого массива равна 15, при такой длине Pentium и выше быстрее выполняет сортировку пузырьком, чем сортировку Хоара. Я, честно говоря, надеялся, что Вы приведете данные для AVR, а Вы вместо этого из того, что C1*N^2 > C2*N*log(N) при больших N, делаете совершенно необоснованный вывод, что так же будет и при малых N. Что не есть правильно.
PS. Строго говоря, (C1*N^2 + C3*N) и (C2*N*log(N) + C4*N) соответственно.
Ну, я "в общем" говорил. Для 15 элементов, да, пузырёк, побыстрее будет.
Правда, если уж совсем по гамбургскому счёту, то так, как написано у ТС (вернее, у того, у кого он это стянул), сортировать не будет никак, потому что, автор, явно что-то покурил перед написанием (для ясности ума, наверное). Но если исправить ошибки ...