Yon

Ардуино и радиомодули RF 433 МГц

4 сообщения в этой теме

Yon    34

Цеплял радиомодули RF 433 МГц на Ардуино Уно и ""Ардуино" на Атмеге 8 (и наоборот) согласно видео и инфы с нета. Скечи заливал следующие. Но никак ни заработало. Какие могут быть причины? Ардуины исправные. Спс.

Скрытый текст

//Светодиод на 13 пине Arduino загорается, когда приходит '1' и тухнет, когда поступает '0'.
// Rx на пине 12
#include <VirtualWire.h>

void setup(){
  vw_set_ptt_inverted(true); // необходимо для модуля DR3100
  vw_set_rx_pin(12);
  vw_setup(4000); // бит в секунду
  pinMode(13, OUTPUT);
  vw_rx_start(); // запуск фазовой автоподстройки частоты (ФАПЧ)
}

void loop(){
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if (vw_get_message(buf, &buflen)) //
  {
    if(buf[0]=='1'){
      digitalWrite(13,1);
    }
    if(buf[0]=='0'){
      digitalWrite(13,0);
    }
  }
}

 

Скрытый текст

// Tx на пине 12
#include <VirtualWire.h>

char *controller;

void setup() {
  pinMode(13,OUTPUT);
  vw_set_ptt_inverted(true); //
  vw_set_tx_pin(12);
  vw_setup(4000);// скорость передачи данных в Kbps
}

void loop(){
  controller="1" ;
  vw_send((uint8_t *)controller, strlen(controller));
  vw_wait_tx(); // ждем, пока отправится все сообщение
  digitalWrite(13,1);
  delay(2000);
  
  controller="0" ;
  vw_send((uint8_t *)controller, strlen(controller));
  vw_wait_tx(); // ждем, пока отправится все сообщение
  digitalWrite(13,0);
  delay(2000);
}

 

 

Изменено пользователем Yon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yon    34

Ошибку нашел. Но как подавить шумы? И еще, на выходе приемника 3,6 В при логической 1, питание 5 В, это норма?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Впервые на русском языке! Работаем с микроконтроллерами STM32F7(на основе STM32F7 Online Training)

Цикл материалов на основе STM32F7 Online Training от компании STMicroelectronics. Описаны функциональные блоки и инструменты разработки для семейства микроконтроллеров STM32F7, охватывающие тематику системной периферии, памяти, безопасности, аналоговой периферии, цифровой периферии, таймеров, экосистемы.

Подробнее>>

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: pingyini
      Всем доброго времени суток. Решил я сделать "умную" электронную сигарету на arduino. Концепция заключается в кнопочном управлении мощностью посредством ШИМ, наличии экрана, и некоторыми защитами в виде ограничения максимального времени нажатия и уход камня в сон (режим пониженного энергопотребления) после N секунд простоя.
      Вводные: по нажатию кнопки запускается ШИМ и управляет полевиком, но в целях защиты я хочу ограничить время выполнения кода до 7 секунд(что бы при случайном зажатии кнопки в кармане не получить травматическую ампутацию конечностей)

      Проблема пришла откуда не ждали - обработка нажатой основной кнопки срабатывает как попало. Нажимая кнопку обработчик может сработать сразу и отработает как по маслу, а может и через 5 нажатий не сработать вовсе.  Проверял в живую на Arduino UNO, Pro Mini (328е Меги) и в Proteus'е. Симптомы одни и те же.  Проблема очевидно в коде но я в упор не вижу в чем может быть загвоздка. Уровень у меня "штота умею" поэтому не судите строго. 
       
      #define pwmPin 5 #define buttonStart 3 #define maxOnTime 7000 //максимальное время выполнения условия нажатой кнопки #define RED_LED 7 #define GREEN_LED 8 int power = 150; //boolean StartState; boolean StartStateFlag; //Флаг кнопки Старт unsigned long pressTime; void setup() { pinMode(pwmPin, OUTPUT); pinMode(buttonStart, INPUT); pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); Serial.begin(9600); //чисто для отладки } void loop() { if (digitalRead(buttonStart) && StartStateFlag && ((millis() - pressTime) <= maxOnTime)) { // (1) если кнопка старт нажата И была отпущена И нажата менее 7 секунд выполняем: analogWrite(pwmPin, power); //запуск ШИМ Serial.println("PWM_ON"); digitalWrite(GREEN_LED, HIGH); digitalWrite(RED_LED, LOW); } else { // (2) иначе StartStateFlag = false; // кнопка небыла отпущена analogWrite(pwmPin, 0); digitalWrite(GREEN_LED, LOW); Serial.println("PWM_OFF"); pressTime = millis(); } if (!digitalRead(buttonStart)) { //(3) если кнопка не нажата analogWrite(pwmPin, 0); //остановка ШИМ Serial.println("PWM_OFF"); digitalWrite(RED_LED, HIGH); StartStateFlag = true; //была отпущена и можно входить в условие с нажатой кнопкой (1) } } И файлы: сам скетч, .elf и .hex для шПротеуса и проект Протеус.
      P. S. ШИМ в Протеусе не работает в принципе, в железе все ОК 
      BUTTON_TEST.ino
      BUTTON_TEST.ino.eightanaloginputs.hex
      BUTTON_TEST.ino.elf
      BUTTON_TEST.ino.with_bootloader.eightanaloginputs.hex
      ButtonTest.pdsprj
    • Автор: Ruslik334
      Уважаемые электроники-программисты. Кто силен в CVAVR? Или может кто подскажет где уже есть. 
      Есть вот такой прогресс бар https://radioparty.ru/programming/avr/c/361-lesson-lib-lcd написанный в Atmel Studio. Но у меня весь проект в CVAVR, попытался привязать его, но не поддается он мне. Помогите или дайте вектор. На Ардуино много, но там для меня совсем темень
    • Автор: dimmer
      Необходимо собрать устройство на ардуино: 
      Управление одним сервоприводом (плавная регулировка 180 градусов) по блютуз с телефона.
      Задача
      Питание для привода-аккумулятор (пока не знаю какой именно, нужно подсказать)
      Минимизировать электропотребление, сделать так что б в спящем режиме не было расхода энергии, или почти не было.  Может убрать светодиоды из платы, или ещё каким то образом.
      Устройством буду пользоваться время от времени и не хотелось бы аккумулятор часто заряжать.
      Основные комплектующие в наличии, думал сам разберусь но нет ни времени, не особого желания это изучать. 
      Территориально Москва. Привезу комплектующие куда скажете, но желательно ЗАО

    • Автор: utf16
      Всем доброго времени суток!
      Никак не могу найти простое решение своей проблемы. Подскажите пожалуйста!
      Думаю над сборкой многоканального аудио ресивера с управлением от ардуино. Есть идея собрать усилитель(ресивер) 5.1
      Не хочется травить платы, поэтому задействую 2 двухканальных усилителя на готовых платах на ТДАшках, и 2 одноканальных для центрального канала и сабвуфера, тоже на ТДАшках.
      Ресивер дожен иметь 5.1 канальные входы для подключения к компьютеру (фронт, тыл, центр и сабвуфер), стереовход(AUX), и блютуз(допустим тоже простой стереовход).
      Коммутировать все это дело должна ардуинка с релейными модулями(это все понятно).
      Суть проблемы вот в чем: как коммутировать сигнал с разных источников звука, чтобы не было проникновения каналов в друг друга? Допустим, включаю обьемный звук с компьютера, нажимаю кнопку, арудуина подключает через реле питание усей, сигнал от входов идет каждый на свои усилитель. А потом переключаю допустим на обычный стерео вход, и нужно его как то коммутировать снова на усилитель фронтальной акустики и, например, на усилитель сабвуфера, и при этом чтобы полностью исключить сигнал от входов с компьютера (от входов многоканального звука). 
      Проще говоря, нужно как то иметь около 5-6 входов аудио сигнала и иметь возможность с ардуино перенаправить эти сигналы на 5-6 выходов на усилители.
      Можно ли все это проделать с мультипликаторами, или, допустим, с матрицей вроде MT8816??? Буду благодарен за любые подсказки)