Сортировка данных напряжения от контакта A0 до 3 переменных (ранжированных)
У меня пока нет кода для этого, но я хотел бы получить некоторые идеи по кодированию. У меня есть направленная антенна, которая вращается с небольшой скоростью, и радиолюбитель, подключенный к антенне. У меня есть выходной порт на радио, который будет выдавать напряжение от 0 до 5 вольт для силы сигнала. У меня также есть данные о степени вращения, которые захвачены. Вопрос, который у меня есть, заключается в том, пытаюсь ли я сделать длинный оператор if then else, чтобы зафиксировать 3 самых высоких напряжения и направления в качестве переменных для последующей обработки, или есть лучший способ. Пример также может иметь большое значение.
@Bkukuk62, 👍-1
Обсуждение1 ответ
Это требует немного больше работы, но я бы предложил использовать массивы для хранения сигнала и позиций примерно так. От (G7WJD) СРОК ИСЧЕЗ!
#define signalPin A0
#define degreePin A1
int signalStrength;
// STORE DATA IN ARRAY
// 0 [strength, direction]
// 1 [strength, direction]
// 2 [strength, direction]
int signals[3][3];
int degree;
bool positionSavedFlag = false;
void setup() {
}
void loop() {
signalStrength = analogRead(signalPin);
degree = analogRead(degreePin);
// comapare with previous data
for (int x = 0; x < 3; x++) {
// have we saved data for this position before?
if (degree == signals[x][1]) {
// yes
positionSavedFlag = true;
// is it stronger than previous signal at this position
if (signalStrength > signals[x][0]) {
// yes so save / update it
signals[x][0] = signalStrength;
}
}
}
// now since position not already stored , store it
}
Спасибо, Брайан, это очень хорошо помогает новичку в программировании. Слава вам!, @Bkukuk62
- Как объявить массив переменного размера (глобально)
- Как получить тип данных переменной?
- Преобразование long в массив символов и обратно
- контент» не захватывается
- Получение имени перечисления из экземпляра перечисления
- Некоторые переменные не сохраняют свои значения при выходе из цикла while?
- Как отобразить переменные с плавающей запятой на OLED-дисплее (0,96 дюйма)
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
вам нужно подумать о том, что вы спрашиваете .... мощность радиосигнала меняется почти непрерывно ... три самых высоких напряжения могут исходить только от одного источника, @jsotola
Это правда. Это было бы нормально, пока я не приблизился бы на своем транспортном средстве, где было бы больше разделения с микропередатчиками. Если бы 1-й, 2-й и 3-й самые высокие сигналы имели один и тот же пеленг, это было бы на самом деле бонусом, потому что я знал бы, что передатчики находятся дальше. Когда я подойду ближе, они разойдутся., @Bkukuk62
Вы знаете, как читать аналоговый вывод в скетче Arduino? Я уверен, что вы делаете. Остальная часть вашего вопроса касается общего кодирования на C ++, поэтому пройдите курс кодирования, если вы не знаете, как кодировать то, что вы хотите., @Juraj