I2C - просто!

Эксперименты с шиной - связь с другой Адуино

Создаем свой блок. Вопросы, помощь знатоков.
Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#1

Сообщение Sancho » 01.10.2017{, 03:44}

Выкладываем наработки по I2C.
Мои пробы.
Блоки чтения здесь, Алексея, (pan)
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C

#2

Сообщение ZeRG » 30.04.2018{, 00:30}

а можно с ардуино сделать слейф?

Отправлено спустя 26 секунд:
ну только принимать данные от мастера и все

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#3

Сообщение Sancho » 30.04.2018{, 08:48}

ZeRG писал(а):
30.04.2018{, 00:30}
а можно с ардуино сделать слейф?
Можно, не сложно, но доступ делать сразу ко всем, т.е с начала и до конца, без произвольного. Вопрос только один, даже не вопрос, а требование - тип и количество данных.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C

#4

Сообщение ZeRG » 30.04.2018{, 13:03}

нужно чтоб ардуино принимала 1 интержер от 0 до 255 все.

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C

#5

Сообщение Sancho » 30.04.2018{, 14:32}

ZeRG, Пробуй. 0-255 - байт. Если очень надо инт - умнож на константу 1 типа integer.

Отправлено спустя 5 минут 16 секунд:
Адрес в настройках блока. По умолчанию 11.

Отправлено спустя 8 минут 3 секунды:
Не забудь два резистора подтяжек по шине и питанию, если только две ардуинки.
Вложения
I2C_RX_v1_Sancho.flp
(48.46 КБ) 78 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C

#6

Сообщение ZeRG » 30.04.2018{, 15:16}

Sancho, а какой блок должен быть у мастера?

Отправлено спустя 49 секунд:
Sancho писал(а):
30.04.2018{, 14:45}
Не забудь два резистора подтяжек по шине и питанию, если только две ардуинки.
не совсем понял как?

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#7

Сообщение Sancho » 30.04.2018{, 15:23}

ZeRG писал(а):
30.04.2018{, 15:17}
Sancho, а какой блок должен быть у мастера?

Отправлено спустя 49 секунд:
Sancho писал(а):
30.04.2018{, 14:45}
Не забудь два резистора подтяжек по шине и питанию, если только две ардуинки.
не совсем понял как?
Для отправки - Пробуй блоки Алексея (pan ).
Два резистора от SDA и SCL к питанию. 4,7к - в пределах 50 см хватит(должно).
Вложения
I2C_TX_&_RX_v1_Sancho.flp
Тестовый вариант
(108.14 КБ) 78 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C

#8

Сообщение ZeRG » 30.04.2018{, 16:51}

спасибо все работает но теперь возникла другая проблема преобразование инт в байт умножением и блоком преобразования не получается выводит какие то непонятные символы

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C

#9

Сообщение Sancho » 30.04.2018{, 17:43}

инт в байт
ZeRG писал(а):
30.04.2018{, 16:51}
спасибо все работает но теперь возникла другая проблема преобразование инт в байт
твой младший
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C

#10

Сообщение ZeRG » 30.04.2018{, 18:34}

спасибо Sancho,

Отправлено спустя 2 часа 17 минут 30 секунд:
I2C - просто!
а можно еще последний вопрос по этой теме :rolleyes: а если данные с мастера не 1 а несколько идущих на 1 ардуино как это сделать?)

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#11

Сообщение Sancho » 01.05.2018{, 09:21}

ZeRG писал(а):
30.04.2018{, 20:51}
а если данные с мастера не 1 а несколько идущих на 1 ардуино как это сделать?)
Или использовать предыдущий блок, но с разными константами адреса, при настройке блока(параметры).
Вложения
I2C_TX_&_RX_v2_Sancho.flp
(120.47 КБ) 68 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C - просто!

#12

Сообщение ZeRG » 01.05.2018{, 13:20}

Sancho писал(а):
01.05.2018{, 09:21}
но с разными константами адреса
я думаю не с константами адреса а нужен регистр

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#13

Сообщение Sancho » 01.05.2018{, 13:52}

ZeRG писал(а):
01.05.2018{, 13:20}
я думаю не с константами адреса а нужен регистр
Понял, что не правильно понял. Но написано было тоже не особо понятно...
Вложения
I2C_TX_&_RX_v3_Sancho.flp
(100.28 КБ) 87 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ZeRG
Рядовой
Сообщения: 52
Зарегистрирован: 28.05.2017{, 00:28}
Репутация: 0

I2C - просто!

#14

Сообщение ZeRG » 01.05.2018{, 14:44}

и снова спасибо :yahoo:

Отправлено спустя 3 часа 35 минут 54 секунды:
скорость передачи данных в данном блоке максимальная?

Отправлено спустя 47 секунд:
или же какая то определенная и возможно ли ее повысить?

Отправлено спустя 1 минуту 25 секунд:
//Wire.setClock(400000);
по идее должен быть гдето такой код
Последний раз редактировалось ZeRG 01.05.2018{, 18:24}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#15

Сообщение Sancho » 01.05.2018{, 18:23}

100 кГц. Стоит по умолчанию в Wire.h
Можно поднять до 400...

Отправлено спустя 3 минуты 27 секунд:
ZeRG писал(а):
01.05.2018{, 18:22}
//Wire.setClock(400000);
Только без слэшей - иначе не сработает, будет как комментарий, после
Wire.begin
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 21
Откуда: Кременчуг
Имя: Сергей

I2C - просто!

#16

Сообщение seri0shka » 02.05.2018{, 22:46}

Не подскажете, программную реализацию I2C на форуме обсуждали (не аппаратный I2C)? Поиск выдаёт полфорума сразу.

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#17

Сообщение Sancho » 03.05.2018{, 08:27}

seri0shka писал(а):
02.05.2018{, 22:46}
программную реализацию I2C на форуме обсуждали (не аппаратный I2C)? Поиск выдаёт полфорума сразу.
Серёжка, не понял вопроса, честно. Конкретно - о чём именно речь? и причина поиска?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 430
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 47
Откуда: Омск

I2C - просто!

#18

Сообщение kulibinsvv » 03.05.2018{, 08:46}

Sancho писал(а):
03.05.2018{, 08:27}
не понял вопроса
В FLProg`e реализован способ обмена по I2C с использованием аппаратного модуля микроконтроллера. Существует также способ эмулирующий работу данного модуля программно. Если аппаратный модуль жёстко привязан к выводам контроллера, то программному - можно назначить любые выводы.
Это, примерно, как с UART.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

I2C - просто!

#19

Сообщение Sancho » 03.05.2018{, 08:49}

А смысл, аргументы?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 430
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 47
Откуда: Омск

I2C - просто!

#20

Сообщение kulibinsvv » 03.05.2018{, 09:12}

Sancho писал(а):
03.05.2018{, 08:49}
А смысл, аргументы?
Это пусть seri0shka объясняет.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Ответить

Вернуться в «Разработка пользовательских блоков»