Jump to content
Sign in to follow this  
LoKeR

Arduino обмен данные между Arduino

Recommended Posts

Доброго времени суток, писал код обмен данных между двумя ардуинкой, отправляю из одной ардуинку "9" а из другого получаю фигню

#include <SoftwareSerial.h>

SoftwareSerial port(2, 3); // RX, TX

int otp=9;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  port.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  port.println(otp);
  Serial.println(otp);
  delay(1000);

}

подскажите пожалуйста, где я ошибаюсь, или не тот делаю

3bYeRmAMWSQ.jpg

7LobuaIlitY.jpg

Share this post


Link to post
Share on other sites

как соеденены ардуинки?


По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

через SoftwareSerial port(2, 3); // RX, TX 

от первой ардуинки RX на второй ардуинку на TX

от второй ардуинки RX на первый ардуинку на TX

Edited by LoKeR

Share this post


Link to post
Share on other sites

Вебинар «Параметры выше, цена ниже. Обновление в линейке AC/DC- и DC/DC-преобразователей MORNSUN» (26.01.2021)

Приглашаем 26 января на бесплатный вебинар, посвящённый преимуществам и отличиям новых источников питания и DC/DC-преобразователей Mornsun. На вебинаре будут рассмотрены изолированные и неизолированные DC/DC-преобразователи последнего, четвертого, поколения (R4) и компактные модульные источники питания второго и третьего поколений (семейства LS/R3 и LD/R2) на плату. Рассмотрим новую группу продукции – встраиваемые источники питания в кожухе.

Подробнее

от нас пули вылетели, видимо проблема на стороне мишеней (с)


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Вебинар "Новый BlueNRG-LP с Bluetooth 5.2 и Long Range — волшебная палочка разработчика IoT" (04/02/2021)

Приглашаем 4 февраля на бесплатный вебинар о BlueNRG-LP - новом программируемом чипе SoC STMicroelectronics. На вебинаре будут детально рассмотрены новые возможности, особенности подключения, аппаратные и программные средства для разработки, а также практические примеры работы с микросхемой.

Подробнее

попробуйте соеденить земли.
Откуда цытата?


По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

Share this post


Link to post
Share on other sites

Плата STEVAL-IDB011V1 – тестируем идеи на новом BLE 5.2-чипе BlueNRG-LP

Новая система на кристалле BlueNRG-LP производства STMicroelectronics предназначена для устройств интернета вещей(IoT ) и не только, отвечает стандарту BLE 5.2 и поддерживает MESH-сети. Микросхема содержит малопотребляющий MCU Cortex-M0+. Отладка STEVAL-IDB011V1 позволит сэкономить время на разработку новых устройств.

Подробнее

Идут стрельбы. Дали автоматы, патроны, показали куда стрелять. Админ отстрелялся, подводят итоги. Мишень админа чистая. Командир: - ?. Админ, проверяя автомат: - С моей стороны пули вылетели. Проблемы у вас. 

Share this post


Link to post
Share on other sites

Ну первая ошибка, ты зачем-то используешь библиотеку Softserial, видимо тебе стандартного сериал не хватило, тогда скорость то укажи  SoftwareSerial.begin(9600);, а не Serial.begin(9600);

Это вообще не понятно откуда и зачем port.begin(9600); port.println(otp);, да и получается ты отправляешь эту хрень не понятно непроинициализировано что это вообще, а потом нормальную отправку делаешь, но не совсем. нужно так SoftwareSerial.println(otp);

А дальше еще смотри что у тебя в приемнике

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Аргументируй-не, это хфигня
    • С ТЗ (100 Ом/22 Ом и 4.8кОм с 15в), ТП 1.8мА, меандр почти идеальный, синус - ужас. Без ТЗ - наоборот. Каскод в инвенторе должен разгрузить дифференциальный, но нет, не получилось. Еще заметил, что ТЗ в одном плече (+) "меняют" синус в лучшую сторону (параллельник и два ТЗ не совместимы?). Лучший результат, если "разгружаю" инвертер (и дифф, как "слабое звено") литером, на много эффективней каскода и ТЗ можно не применять. Кто полевые применял в УН, какие? Там "копать" стоит, чтоб дорогущий литерал в Ланзар не ставить.
    • @Константин Сомов , Вы на даты постов смотрите? На кой хрен кому-то Ваш пост нужен через четыре года?
    • Очень больше значение имеет ток утечки времязадающего электролитического конденсатора. Если бы его не было - и аналоговые схемы подошли бы. По этой самой причине я и отметил, что 0,5...1 мин - максимальное время устойчивой работы. Но Вам нужно было потоптаться по собственным граблям. Потоптался...  
    • @Alex_641  Так зависит собирать или нет не изза денег даже, хотя купить запчасти дороже чем купить готовый набор в китае  если все это не в шкапчике... разговор больше о времени доставки.
    • Какие нафиг прогнозы по светодиодам,даже если они из америке, но произведённые в китае...Я сам думаю, доживу до 100 или ограничится 70 годами, все наверное зависит от питания, но если снизить, поможет ли мне это? Думаю прогноз это к экстрасенсам, нам нужны для всего этого цыферы ... ПС. не очень я резисторы для ограничения люблю, совсем не люблю, да , легко, вообще и делают это изза легкости, но светодиодам нужен стабилизированный ток, тогда все будет жить 100 лет
    • Ну автор же написал, что нашел какие-то готовые контроллёры с нужными функциями. И просит лишь гарантий от нас, что всё это у него будет работать. 

  • Клеммные колодки, 2 pin, 10 шт.

  • Similar Content

    • By YetiSPb
      Здравствуйте. Мои знания в электронике малы, но мне необходимо подружить датчик давления и модуль тока и напряжения, если это возможно.
      Итак, есть датчик дифференциального давления NPH-8-172DH и модуль тока и напряжения CJMCU-219 для Arduino .
      Если я правильно понял то датчик отдаёт два сигнал нала в mV. Пины 5, 6 вход отдают данный по давлению на входе, пины 4, 10 по давлению на выходе.
      Возможно ли измерить сигнал датчика модулем CJMCU-219?  Какое должно на датчик подаваться напряжение и какой должен быть ток? Как правильно подключить датчик и модуль дуг у дугу правильно?
    • Guest kaisarali1997ss@gmail.com
      By Guest kaisarali1997ss@gmail.com
      Доброго времени суток.
      Не смог реализовать повторный Serial.available() внутри условия Serial.available.
      Может кто-то уже сталкивался с этим.
      Задача состоит в том, что нужно зажечь светодиодные ленты WS2812b. 
      Алгоритм действий:
      1)  Ожидаем появления данных на входе serial с помощью if (Serial.available()){}
      2) Принимаем значения int val=Serial.paresInt();
      3)Условие сравнивания if(val>123){chess=val;} esle if(val<124){color=val;} т.е номер светодиода это chess, цвет это color
      4) На смартфон отправляем 'n', для разрешения отправки следующих данных
      5)Ждем уже цвет светодиода на входе serial далее по предыдущему алгоритму 
      6)Зажигаем указанный светодиод на указанный цвет. 
      #include <FastLED.h> #define LED_PIN 6 #define NUM_LEDS 123 CRGB leds[NUM_LEDS]; const unsigned int DIM1 = 123; const unsigned int DIM2 = 1; const unsigned int DIM3 = 3; int ary[DIM1][DIM2][DIM3]; void setup() { Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); } void loop() { if(Serial.available()){ int val=Serial.parseInt(); int chess=val; Serial.println(chess); delay(1); Serial.println('n'); clear_serail(); if(Serial.available()){int color=Serial.parseInt(); Serial.println(color); if(color>0){ if(color==124){ ary[chess][1][1]=0; ary[chess][1][2]=255; ary[chess][1][3]=0; Serial.println(ary[chess][1][1]); Serial.println(ary[chess][1][2]); Serial.println(ary[chess][1][3]); leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); } if(color==125){ ary[chess][1][1]=255; ary[chess][1][2]=0; ary[chess][1][3]=0; leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); }}} } } void clear_serail(){ Serial.end(); Serial.begin(9600); }  
    • By Любовь Бертулите
      Компания производитель вендинговых автоматов для розлива питьевой воды в поисках инженера-системотехника/инженера электронщика.
      График 5/2 с 9 до 18, здесь удаленный формат не рассматриваем.
      Место работы – г. Екатеринбург.
      Мы ищем специалиста, который будет делать прототипы нового для контроллера, курировать производство, проверять, дорабатывать, перепаивать, а также:
      Переписывать текущие программы на С++; Создавать программу для Android для конфигурации параметров контроллера через bluetooth. (т.е. предлагать новые, современные идеи и подходы для развития имеющихся контроллеров, которыми вы владеете); Предлагать новые программные продукты, среды разработки. Будет в тренде мира микроэлектроники, китайского контрактного производства. Может предложить совершенно новую реализацию наших текущих задач, чтобы это было лучше и эффективнее. В идеале, нам нужен специалист, который имеет:
      Опыт программирования микроконтроллеров Atmega, STM32, ESP32; Опыт работы в Altium Designer; Опыт работы в c++ (IAR, QT); Опыт работы с modbus, rs485/232, SPI. Готовы рассматривать специалистов с разным опытом, поэтому пишите, задавайте вопросы.
      Резюме можно отправить на почту lb@ktekt.ru (да, мы кадровое агентство), позвонить можно по следующему тел. 89068001212 - Любовь. 
       
    • By admin
      В видео протестируем плату Nucleo G474RE и проверим насколько она быстрее Arduino Uno.
      Текстовый вариант инструкции, как превратить отладочную плату STM в Arduino: https://www.compel.ru/lib/132248
      Плата Nucleo-G474RE: https://www.electronshik.ru/item/ST/NUCLEO-G474RE
      Arduino Uno: https://www.electronshik.ru/item/ARDUINO/ARDUINO%20UNO%20REV3
      Репозиторий проекта stm32duino: https://github.com/stm32duino/Arduino_Core_STM32
      Репозиторий benchmark’а: https://github.com/PaulStoffregen/CoreMark
      Пи тест, вторая часть: https://youtu.be/uLOWYE-JJpA
      Пи тест, первая часть: https://youtu.be/ozu1IUjH1_Q
      Платы XNucleo: https://www.st.com/content/st_com/en/search.html#q=xnucleo-t=tools-page=1
    • By sys
      Потребовалась в проекте простая и долгоживущая память для вобщем- то небольшого количества данных, на случай сбоя по питанию. Работа ограничивалась записью текущих изменяющихся значений и восстановлением при включении. При неспешной записи несколько раз в минуту, ресурс ATMEGA328 выбирался за 2 года гарантированной записи её родной EEPROM, происходившей по кольцу, что не очень радовало.
              Отступление небольшое, в нете читал статью где этот чип подвергался повышенным напряжением в 7- 9В и при снижении опять начинал работать, так это правда, случайно проверил. Ещё тестили количество циклов чтения- записи, реально намного превышает количество заявленное производителем, но у меня не тот случай где можно на это надеяться.
      Присутствовал на борту модуль с Алиекспресса с DS3231,  на нём имелась память 24С32. Ввиду чрезвычайного удобства (модуль два в одном, и часы и память, общая шина IIC/TWI) эта микросхема использовалась для вышеуказанных целей очень долгое время. А потом всё устройство обрастало свистелками- перделками многочисленными датчиками  и подвергалось давлению перфекционизма. Времени для записи, по даташиту  10ms, стало слишком много и в обрез оставалось для основной работы программы. Я посмотрел в сторону FRAM.
             Были заказаны на том же Али FM24С64 и 04. Частота работы до 1 Мгц,  выпускаются в вариантах 5 и 3,3В, объёма, учитывая количество циклов записи- чтения 10 в 12-й степени хватало. Перепробовав безуспешно адаптировать несколько библиотек, для обычных 24СХХ, решил написать подпрограммы, напрямую работая со встроенной библиотекой Wire Arduino IDE (https://www.arduino.cc/en/Reference/Wire). Этими скетчами проверял присланные микросхемы.
      Для FM24C04:
      #include <Wire.h>
      byte iich = 0x50;// адрес устройства
      unsigned int address = 0;
      byte datawrite = 0x77;// чем заполнить ячейки памяти
      void setup() {
        Serial.begin(115200);
        Wire.begin();
        Wire.setClock (400000);// скорость шины, от 3,3В через конвертер уровней TXS0108 тоже работают
        for (address = 0; address < 512; address ++ ) {  // цикл для записи в память
          iic_write (address, datawrite);    
        }
        for (address = 0; address < 512; address ++ ) { // цикл для чтения из памяти
          Serial.println ();
          Serial.print (address);
          Serial.print ("--");
         Serial.print (iic_read (address),HEX);
          Serial.print ("--");   
        }
      }
      /////////////////////////////////////////////////////
        void loop() {
        }
      /////////////////////////////////////////////////////
        
      unsigned int iic_read (unsigned int adrd) {
          Wire.beginTransmission(iich);
          Wire.write(adrd);
          Wire.requestFrom(iich, 1);
          return  Wire.read();
          Wire.endTransmission();
        }
       void iic_write ( unsigned int adwr, byte dat) {
          Wire.beginTransmission(iich);
          Wire.write(adwr);
          Wire.write(dat);
          Wire.endTransmission();
        }
       
      Для  FM24С64 меня ждали несколько шикарных, испытанных временем граблей.
      Перерыт инет, перечитан даташит. Внутренний подтягивающий к земле резистор  internally pulled down достаточно велик для уровня наводки, воспринимаемой как логический "0" или "1". Поэтому вывод WP- обязательно к земле наикратчайшим  проводом, тем более если это "сопли" на разъёмах на столе. То- же о выводах А0-А2, висящие в воздухе они давали несколько несуществующих адресов. Почему- то это не касается FM24C04 и я попался на этом чипе.
      Подпрограммы изменились, для чтения:
      unsigned int iic_read (unsigned int adrd) {
        Wire.beginTransmission(iich);
        Wire.write(adrd >> 8);// старший байт
        Wire.write(adrd & 0xFF);//младший байт
        Wire.requestFrom(iich, 1);
        if (Wire.available()) {
          return  Wire.read();
        }
        Wire.endTransmission();
      }

      для записи:
      void iic_write ( unsigned int adwr, byte dat) {
        Wire.beginTransmission(iich);
        Wire.write(adwr >> 8);
        Wire.write(adwr & 0xFF);
        Wire.write(dat);
        Wire.endTransmission();
      }
      Работа 5В версии (FM24C64-G) при питании 3,3В и скорости шины 400000 стабильна, что рекомендовать к работе конечно нельзя.
      По поводу  FM24C64 (подозреваю что и С32 ,  С128,  С256) коротко и ясно написано на https://forum.arduino.cc/index.php?topic=18946.0 пользователь alicemirror объясняет как работает чтение у этих микросхем, а поскольку они прямая замена для, например, АТ24С64, то и для них это справедливо.  Дело в том, что данные из микросхемы "выстреливаются" далее без указания адреса с его автоинкрементом самой микросхемой после подтверждения от ведущего. Эту прыть и надо останавливать при получении байта :-)  и способ адресации отличается от младших, с меньшим объёмом.
         Интересных всем проектов!
×
×
  • Create New...