Arduino pro micro

muin
Offline
Зарегистрирован: 29.09.2017

Ребят сильно не пинайте, новичек в этом деле. Имеется ардуино про микро и дисплей 6 пинов 

сама ардуино про микро вот. 

Возможно ли подключить дисплей этот дисплей или нужен только 4 пиновый.

Не могу понять куда подключать reset и DC. 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Постарайтесь найти документацию на дисплей. Судя по верхнему рисунку, он подключен по SPI, а надписи на дисплее, похоже, соответствуют режиму I2C.

Вероятно, Ваш дисплей поддерживает оба протокола (я с такими дела не имел, поэтому ничего подробнее сказать не могу).

4-пиновый - это I2C, но режим SPI в несколько раз быстрее.

muin
Offline
Зарегистрирован: 29.09.2017

Спасибо. Разобрался, смог запустить его. По SPI. 

Единственное готовый скейтч демо режима запускаю все нормльно, потом попробовал свое и русский шрифт. Тоже все норм, потом снова демо скейтч, а теперь снова свое запускаю просто зависает на экране тот скейт с демо режима, и только это показывает. Т.е. на том моменте где произошло зависание. Работает только демо скейтч (((

 

#define OLED_MOSI   3
#define OLED_CLK   2
#define OLED_DC    9
#define OLED_CS    0
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

Смущает еще OLED_CS, так как на дисплее нет у меня его. Ставлю там 0.

b707
Offline
Зарегистрирован: 26.05.2017

muin пишет:

Смущает еще OLED_CS, так как на дисплее нет у меня его. Ставлю там 0.

Не ставьте там ноль, ноль - это не отсутсвие пина, это пин0, он используется интерфейсом USB, через который заливаются скетчи. Именно поэтому вы и не можете теперь прошить новый скетч.

Отключите дисплей от платы - тогда есть шанс. что сможете прошить.

muin
Offline
Зарегистрирован: 29.09.2017

А что там неадо написать, по дефолту там стоит 12. Если удалить строчку. То вылазит ошибка.

Пробовал вот так 

#define OLED_MOSI   3
#define OLED_CLK   2
#define OLED_DC    9
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET);

Может я что криво пишу, ребят накидайте скейтч просто вывода одного слова. Я проверю.

sadman41
Offline
Зарегистрирован: 19.10.2016

A3 поставьте

muin
Offline
Зарегистрирован: 29.09.2017

Спасибо попробую

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

muin, а почему не используете аппаратный SPI?

muin
Offline
Зарегистрирован: 29.09.2017

Так по SPI протаколу и запускаю дисплей. С ним вроде разобрался, все работает. 

Вопрос такой, чтоб на дисплее обновлялись данные, а заголовок оставался на месте как реализовать это?

Или каждый раз после команды 

display.clearDisplay();

Заполнять экран заного?

sadman41
Offline
Зарегистрирован: 19.10.2016

muin пишет:

Вопрос такой, чтоб на дисплее обновлялись данные, а заголовок оставался на месте как реализовать это?

http://forum.arduino.cc/index.php?topic=383909

muin
Offline
Зарегистрирован: 29.09.2017

Спасибо. Но я к сожалению не смог разобраться. Мне бы примерный код для примера так сказать. Я как понял либо что то с фоном, либо подключить дополнительную библиотеку? 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

muin пишет:

Так по SPI протаколу и запускаю дисплей. С ним вроде разобрался, все работает. 

Вы между "программный SPI" и "аппаратный SPI" разницу улавливаете?

 

1.

Цитата:

Вопрос такой, чтоб на дисплее обновлялись данные, а заголовок оставался на месте как реализовать это?

 

2.

Цитата:

display.clearDisplay();

"1" и "2" взаимно исключают друг друга.

Реализовать просто - нужно не чистить дисплей целиком, а обновлять только ту часть экрана, которую необходимо перерисовать. Это, кстати, и быстрее, и лучше с точки зрения внешнего вида.

muin
Offline
Зарегистрирован: 29.09.2017

Вы между "программный SPI" и "аппаратный SPI" разницу улавливаете?

К сажелению нет, буду признателен если вы обьясните или дадите ссылку где про это можно прочитать.

display.clearDisplay();

Да я про это и говорю что он очистит весь экран, а как очистить только указанный усачсток? 

Есть ли такая команда?

sadman41
Offline
Зарегистрирован: 19.10.2016

Нет такой команды. А как люди извращаются - я вам уже нашел (потратил полчаса на это).

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

есть команда рисования прямоугольника с заливкой. Если залить цветом фона то .....

muin
Offline
Зарегистрирован: 29.09.2017

sadman41 пишет:

Нет такой команды. А как люди извращаются - я вам уже нашел (потратил полчаса на это).

Спасибо. Попробую. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

muin пишет:

Вы между "программный SPI" и "аппаратный SPI" разницу улавливаете?

К сажелению нет, буду признателен если вы обьясните или дадите ссылку где про это можно прочитать.

Программно можно реализовать любой протокол. Если скорости хватит.

Аппаратная реализация осуществляется производителем - есть только то, что заранее предусмотрено и реализовано.

Программный SPI может быть реализован на любых ногах, но требует ресурсов процессора и работает медленнее.

Аппаратный SPI предусмотрен разработчиком во всех контроллерах, применяемых в Ардуино, но работать может только на определенных ногах. Работает на максимально возможной скорости и не потребляет лишних ресурсов.

Библиотека может работать как в том, так и в другом режиме. Но при указании в конструкторе списка ног реализует программный вариант, а без указания номеров ног - аппаратный.

muin
Offline
Зарегистрирован: 29.09.2017

 

Цитата:

Библиотека может работать как в том, так и в другом режиме. Но при указании в конструкторе списка ног реализует программный вариант, а без указания номеров ног - аппаратный.

Спасибо.

djcorsar7
Offline
Зарегистрирован: 24.02.2018

А возможно ли реализовать аппаратный SPI в PRO Micro?

 

sadman41
Offline
Зарегистрирован: 19.10.2016

djcorsar7 пишет:

А возможно ли реализовать аппаратный SPI в PRO Micro?

А что, его туда уже перестали припаивать?

djcorsar7
Offline
Зарегистрирован: 24.02.2018

Простите новичка но Reset и CS на (Sparkfun) pro micro найти не могу.

sadman41
Offline
Зарегистрирован: 19.10.2016

Сделайте Serilal.println(SS) и узнаете, какой пин ваша библиотека принимает за SS.

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Reset есть, а SS(PB0) не выведен на гребёнку, на нём висит светодиод RX , который его притягивает к "1". Т.е.  SPI работать будет , а SS как известно можно переназначить на другой пин, если оно вам надо конечно.