Пультоскоп на Arduino 27МГц!!!

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

Схема выше. R4 - 100 Ом.

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

Подскажите, кто в курсе, как (если возможно) в скетче SSD1306_EL83_EDITION_avto повернуть изображение на 180 градусов?
Если бы использовалась библиотека, например U8glib.h, то можно было бы командой setRot180() повернуть на 180 градусов.
Но библиотек нет в скетче.
Нашел:
//процесс инициализации дисплея из даташита
 oledCommand(0xA1);//отражение по горизонтали слева направо
 oledCommand(0xA0);//отражение по горизонтали справа налево
 oledCommand(0xC8);//отражение по вертикали
 oledCommand(0xC0);//переворот изображения по вертикали
//Одновременное использование команд 0xC8 и 0xA1
или
0xA0 и 0xC0 позволяет повернуть изображение на 180 градусов

Но как применить эти знания? Помогите.

progrik
Offline
Зарегистрирован: 30.12.2018

Alex-Bee пишет:
...Если бы использовалась библиотека, например U8glib.h, то можно было бы командой setRot180() повернуть на 180 градусов. Но библиотек нет в скетче...
ну так пошли дисплею две команды, сам же написал)) а у8глиб работает с этим дисплеем? глянь в исходниках библиотеки, что делает функция сетРот180, и сделай тоже самое... или можно найти функцию, которая шлет команды, стырить ее, и в месте инициализации дисплея послать 0xa0 потом 0xc0 (или другую пару c8 и a1)... или, медитируя над скетчем понять, как слать команды, и таки послать обе)) и т.д... юным падаванам, мастерам йода и ниндзям  - можно посмотреть даташыт))

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

удач!)

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

Практика показывает, что библиотеки для Ардуино сами поворачивают изображение для SSD1306 как раз на 180 градусов. Чтобы восстановить исходную ориентацию нужно просто закомментировать в блоке инициализации эти команды.

progrik
Offline
Зарегистрирован: 30.12.2018

дык, говорится, что библиотека не подключена. значит все нужное в коде. тогда нужно в коде найти вызовы oledCommand (если не переименовали), по идее там много вызовов для настройки, и искать по параметрам 0xA1 и 0xС8 , и изменить их соответственно на 0xA0 и 0xC0 (или наоборот, искать 0xA0 и 0xC0, менять на 0xA1 и 0xC8). и мне кажется, эти строки лучше не комментировать. кто знает, что там китайцы по умолчанию сделают в следующей партии) лучше явно указать слева направо сверху вниз... хотя эти китайцы и это испоганить на раз могут)) и комментарий нужно написать, чтоб другие понять могли, где можно поменять ориетнацию)), если что... ...как-то так...

Joiner
Offline
Зарегистрирован: 04.09.2014

progrik пишет:

... хотя эти китайцы и это испоганить на раз могут)) ............................

Хочу заступиться за китайцев. Мне кажется, если бы ни китайцы, то мы сейчас паяли бы схемы на транзисторах КТ315 :)

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

progrik, вот ссылка на скетч, о котором речь:
https://drive.google.com/file/d/1wmKMk2YsMTgITdfPQDqwcbVS3LyHeK-f/view?usp=sharing
В нём есть закомментированные строки, которые должны были бы перевернуть изображение на 180 градусов:

// #include <Wire.h>

 //Предварительно создам функции ввода команд и данных в дисплей.
    void oledCommand(int comm) {
    Wire.beginTransmission(0x3C);//Начинаем передачу команд устройству с адресом 0x3C.
    Wire.write(0x00);//Сообщаем дисплею, что следующее передаваемое значение - команда.
    Wire.write(comm);//Передаем команду.
    Wire.endTransmission();//Завершаем передачу данных.
    }

void setup() {
  //изображение на SSD1306 - Перевернуть все
    oledCommand(0xA0); //0xA1 отражение по горизонтали, для отображения справа налево необходимо использовать команду 0xA0
    oledCommand(0xC0); //0xC8 отражение по вертикали, 0xC0 для переворота изображения по вертикали.

Без них - все компилится и работает.
С ними - все компилится и получаем темный экран.

PS
 U8glib с этим экраном работает
https://arduinoplus.ru/u8glib-oled-ekran-i-ssd1306/
>ну так пошли дисплею две команды, сам же написал))
Пробовал, писал... видимо, не то и не там... все время ругается на "не задано", "не определено"...
потому и прошу помощи.

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

О туплю ;) Скорее всего, всё, нужное мне, находится в блоке my_ssd1306.ino
Подправьте, пожалуйста, если знаете как.

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

Отбой тревоги! Всем спасибо! Нашел, таки в блоке my_ssd1306.ino:
//   ssd1306_wr_cmd(0xC8); // установили направление чтения RAM 0xC8 or 0xC0
//   ssd1306_wr_cmd(0xA1); // сегмент с 0 до 127 0xA1 or 0x0A
   ssd1306_wr_cmd(0xC0); // установили направление чтения RAM 0xC8 or 0xC0
   ssd1306_wr_cmd(0xA0); // сегмент с 0 до 127 0xA1 or 0x0A

К стати, 0x0A в комменте автора  - это ошибка. Правильно, как у меня 0xA0
Всё перевернулось как надо. Работает.

Igor_kip
Offline
Зарегистрирован: 03.01.2016

Добрый день. Подскажите, пожалуйста, где кроме строчек
034 #define VBAT A1 // любой свободный аналоговый пин для измерения напряжения АКБ
035 #define TempC A0 // любой свободный аналоговый пин для измерения температуры
В скетче для 1230 сообщения 4422 уважаемого smokok нужно исправить, чтобы поменять местами A0 и A1.
Сам никак, в 55 тяжеловато начинать учиться програмированию.
Спасибо

Igor_kip
Offline
Зарегистрирован: 03.01.2016

Немного разобрался сам, независимо на каком входе, температура показывает ~550, на нагрев реагирует повышением, в монитор порта шлет адекватные значения. Подскажите, пожалуйста, в какую сторону копать.

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Еще вариации осцилла на ардуино  и OLED https://electronics.qetesh.de/ardosc/

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

Заброшенный проект "Осциллограф на Ардуино"
http://forklg.ru/viewtopic.php?f=98&t=1041&sid=cb89233aa8b8f3fff1a7e06a7...
Интересен большим экраном - TFT LCD шилд с чипом ST7781 240x320 ID=0x7783

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

в начале темы делали на таком дисплее осцилограф, но вроде как он получался медленный

progrik
Offline
Зарегистрирован: 30.12.2018

Xumuk пишет:
в начале темы делали на таком дисплее осцилограф, но вроде как он получался медленный
все ослики на цветных тфт тормоза жуткие... библиотеки никудышние, да и сами "кодеры" не очень, раз не исправляют...

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

progrik пишет:

да и сами "кодеры" не очень, раз не исправляют...

Сам напиши раз такой умный бл....

progrik
Offline
Зарегистрирован: 30.12.2018

240265 пишет:
Сам напиши раз такой умный бл....
я то написал, бл...

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Судя по насыщению рынка дешевыми китайскими осциллографами,то развитие проекта уже не имеет смысла?

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ну разве,что ради хотелок типо 2 в одном

Alex-Bee
Offline
Зарегистрирован: 13.03.2020

Из-за насыщения рынка дешевыми ESP32, имеет смысл "переносить проект" на них :)
Я запихнул себе здешний проект на Atmega328 Pro Mini в лежавший без толку корпус от убитого MP4 плеера: получилась маленькая забавная игрушка, чуть более спичечного коробка. Наводку 50 Гц можно по квартире отслеживать... и даже интенсивность наводки видно, по амплитуде сигнала. Если ко входу подключить элемент солнечной батареи, то можно смотреть частоту мерцания LED ламп, особенно если она 100 Гц. Для таких простых целей что-то более навороченное не надо. А с этим "чудом" можно наличие мерцания (качество драйвера) лампы даже в магазине посмотреть. Его вес - 38 грамм (с аккумулятором).

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

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

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

fly245 пишет:

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

http://ansvet.ru/stm/f1_osc_320x240/   

https://radiokot.ru/forum/viewtopic.php?f=59&t=103803&p=3903840#p3903840

https://yadi.sk/d/zgN9puZg3NKG8m

 

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015
Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

прикольная штука DLO138,сам являюсь обладателем dso138, я так понимаю это переделка dso

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Спасибо конечно,но я говорил именно про проект в этом топике..

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

может подсказать как можно прикрутить прозвонку к ослику?

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Измеряешь сопротивление . если меньше 30 Ом - кричишь.
Делитель напряжения и АЦП.