0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
1

Nano + nano по i2c

07.04.2018, 11:29. Показов 1831. Ответов 15
Метки нет (Все метки)

Всем добра!
Есть одна нано, и по сути к ней нужно было подключить два устройства по uart + карту памяти по spi.
После того, как я понял, что это сделать не получится, у меня возник вопрос.

Купить еще одну нано, и соединить их по i2c между собой.
Подключить к каждой нано по девайсу с uart.
Плюс к одной из них для логгинга будет подключен модуль для sd карт по spi.

А вопрос в следующем.
Будет ли это работать? реализуемо?
не будет ли мешать i2c(и spi) работе каждой нано по uart?

Между ардуинками хочу пересылать переменные (int,string,float).

Мега с 4мя uart портами это конечно хорошо, но уш больно большая она (+ценник).
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2018, 11:29
Ответы с готовыми решениями:

Arduino Nano, I2C
Привет бойцы невидимого фронта. Проблема такова, у меня есть часы реального времени DS1307, и...

Кардиодатчик + Arduino Nano
Проблема такая есть arduino nano и не то что бы кардиодатчик(его подобие своими руками) хочу...

Arduino Nano+ Bluetooth HC-05
Здравствуйте. Есть aрдуино нано и блютуз hc 05. Мало знаю по электронике, но приходится работать ...

Тестировщик на Arduino Nano
Доброго времени, нужен элементарный скетч на тестировщик, однако по алгоритму и уточнить ряд...

15
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
07.04.2018, 13:49 2
Цитата Сообщение от GoodR Посмотреть сообщение
Есть одна нано, и по сути к ней нужно было подключить два устройства по uart + карту памяти по spi.
После того, как я понял, что это сделать не получится, у меня возник вопрос.
Ээ с чего вы взяли что не получится? ЧТо за UART устройства?

Можно ведь наверное использовать программый сериал.

Мега конечно лучше, тогда можно будет и к компу подрубать без переподключений.
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
07.04.2018, 15:43  [ТС] 3
Цитата Сообщение от Avazart Посмотреть сообщение
ЧТо за UART устройства?
SIM800L и NEO6GPS
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
07.04.2018, 16:01 4
Какие проблемы повесить на SoftwareSerial их ?
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
07.04.2018, 16:25  [ТС] 5
Цитата Сообщение от Avazart Посмотреть сообщение
на SoftwareSerial их ?
я подключил их SIM800l к D5 D6, GPS к D7 D8.
Оба через SoftwareSerial *
Пока открыт один сериал, все хорошо. Открываешь второй и всё.

Если реализовать в LOOP, что сначала открывается один софт сериал, опрашивается и закрывается.
После открывается второй, опрашивается, закрывается. Результат: по GPS половина данных не приходит.
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
07.04.2018, 19:03 6
Цитата Сообщение от GoodR Посмотреть сообщение
Пока открыт один сериал, все хорошо. Открываешь второй и всё.
Код свой покажите.
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
07.04.2018, 20:05  [ТС] 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <SoftwareSerial.h>
SoftwareSerial NEO(8, 7);
SoftwareSerial SIM800(6, 5);
 
void setup() 
{
  Serial.begin(9600);
  SIM800.begin(9600);  
  NEO.begin(9600);
}
 
void loop()
{
  while (NEO.available())
  {
    Serial.print(NEO.read);
  }
 
  if (SIM800.available())
  {
    Serial.print(SIM800.read);
  }
 
  if (Serial.available())
  {                
    SIM800.write(Serial.read());    
  }
}
пока он ждет данных от SIM800 и от Serial по NEO идут данные но он их не принимает, получается потеря
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
07.04.2018, 20:22 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void loop()
{
  if(NEO.available()) // тут IF
  {
    Serial.print(NEO.read()); // скобки у read()
  }
 
  if (SIM800.available())
  {
    Serial.print(SIM800.read()); // скобки у read()
  }
 
  if (Serial.available())
  {                
    SIM800.write(Serial.read());    
  }
}
Добавлено через 3 минуты
А вообще лучше читать построчно с помощью readStringUntril("\n");
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
07.04.2018, 20:31  [ТС] 9
Не будет работать)
С gps посимвольно выходят данные.
Опечатку со скобками я уже сам допустил когда печатал сюда.

Но попробую, спасибо
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
07.04.2018, 21:33 10
Цитата Сообщение от GoodR Посмотреть сообщение
С gps посимвольно выходят данные.
Ну gps посимвольно, а SIM построчно.
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
08.04.2018, 18:26  [ТС] 11
как я собственно и говорил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <SoftwareSerial.h>
SoftwareSerial NEO(8, 7);
SoftwareSerial SIM800(6, 5);
 
void setup() 
{
  Serial.begin(9600);
  //SIM800.begin(9600);  
  NEO.begin(9600);
}
 
void loop()
{
  if (NEO.available())
  {
    Serial.print(NEO.read());
  }
}
стоит открыть от коммента открытие парта у SIM800 - все встает колом.
Может все таки соединить две нано по i2c? =)
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
08.04.2018, 19:50 12
Лучший ответ Сообщение было отмечено GoodR как решение

Решение

Попробуйте не использовать два программных сериала, используйте только один второе устройство кидайте на аппаратный (без связи с компом)
1
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
08.04.2018, 20:43  [ТС] 13
а перепрошить ардуинку как потом?
правильно понимаю что одно из устройств подключать к RX0 и TX1?
есть какой либо мануал под рукой? или пример работы с аппаратным?
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,617
Записей в блоге: 30
08.04.2018, 21:34 14
Отключать модуль, прошивать, а после снова подключать устройство.
Да правильно поняли.
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 29
09.04.2018, 14:35  [ТС] 15
спасибо, получилось при подключении к аппаратному uart
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 1
17.02.2019, 02:02 16
Вы бы не могли выложить решение вашей задачи? Я так же пытаюсь реализовать нечто подобное, используя те же компоненты что и вы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2019, 02:02

Arduino nano и дальномер HC-SR04
Добрый день. Я новичек в Ардуино. Приобрел дальномер HC-SR04, написал простенький скетч для него,...

Arduino nano v 3.0 и светодиодные ленты
Здравствуйте, у меня есть arduino nano и 4 свет. Аналоговые ргб ленты и включатель/выключатель. Мне...

Arduino nano + HC-06 + DC motor перезагружается
Добрый день! Возникла идея сделать из старой сломанной игрушечной машинки Audi Q7 ...

Кодовый замок на Arduino nano
Видает ошибку при компиляции данного кода, уже всё что знал перепробовал ничего не получается, не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.