#26 Програмування Arduino » Допоможіть з OLED 128x32 » 2023-03-29 19:48:42

PolArt
відповідей: 9

Є в наявності робочий дисплей OLED 128x32 з І2С інтерфейсом. Намагаюсь керувати ним "в ручну", тобто без використання бібліотек. Хотілося б спробувати створити свою, під себе.
Суть проблеми: не можу розібратись з даташитом як виводити інформацію на дисплей. Після ініціалізації, які мають бути команди?
Щоб зрозуміліше було, наприклад, я хочу засвітити перший піксель у верхньому лівому куті. Хтось може, простими словами, написати послідовність команд і даних? Зрозумівши як виконується дана проста задача, я зможу вже побачити біль-менш яснішу картину.

#27 Re: Апаратні питання » Прямий доступ до регістрів GPIO ESP8266 » 2022-08-24 19:51:31

Прошу Адміністрацію перенести тему в інший розділ. Помилився трохи.

#28 Апаратні питання » Прямий доступ до регістрів GPIO ESP8266 » 2022-08-24 19:49:29

PolArt
відповідей: 1

Підкажіть будьласка чи можливо в середовищі Arduino IDE звертатись до входів-виходів ESP8266 напряму? Наприклад як у AVR:

DDRB B11111111
PORTB B01001001

#29 Апаратні питання » ESP i USB/UART » 2022-08-16 20:17:48

PolArt
відповідей: 1

Ситуація наступна, є два модулі ESP-01 та ESP-01S і два різних перехідника "свистка". Модуль ESP-01S працює на будь-якому з цих перехідників, а от ESP-01 працює тільки на чорному свистку. Світиться світлодіод і все, більше ніякої реакції, навіть на ресет не реагує. В чому може бути проблема?
На червоному чіп СН340С, на чорному затерте маркування.

esp.jpg

#30 Re: Програмування Arduino » Помилка коомпіляції esp8266 » 2022-08-15 15:55:53

Скетч часом не з архіву відкриваєте? Розархівуйте архів зі скетчами повністю і відкривайте готовий файл. Або запустіть нове вікно IDE і в нього копіПаст зробіть.

#31 Re: Програмування Arduino » Проблема с внешней памятью » 2022-07-08 09:45:37

Благодарю за информацию. Я еще на пути познания, не все сразу могу осознать.

#32 Re: Програмування Arduino » Проблема с внешней памятью » 2022-07-07 14:36:35

Если не напутал, то вот так:

1 Кбит - 2 Кбит

Wire.beginTransmission(deviceAddress);
Wire.write(addressCell);
Wire.write(data);
Wire.endTransmission();

4 Кбит - 16 Кбит

Wire.beginTransmission((byte)(deviceAddress | ((addressCell >> 8) & 0x07)));
Wire.write(addressCell & 0xFF);
Wire.write(data);
Wire.endTransmission();

32 Кбит - 256 Кбит

Wire.beginTransmission(deviceAddress);
Wire.write(addressCell >> 8);
Wire.write(addressCell & 0xFF);
Wire.write(data);
Wire.endTransmission();

#33 Re: Програмування Arduino » Проблема с внешней памятью » 2022-07-07 10:47:29

Благодарю всем за помощь. Технически проблема решилась, осталось только осознать более глубоко передачу адреса ячейки памяти. Как оказалось этот скетч таки пишет, но не то и не туда)) Я так понял он заточен под памяти с бОльшим объемом. Надеюсь поскорее доразбираться, чтобы внятно описать суть.

#34 Re: Програмування Arduino » Проблема с внешней памятью » 2022-07-06 23:33:51

akapulko пише:

Попробуйте найти строку в которой зависает программа, например последовательно перемещая:

Serial.println("checkpoint");

Спасибо, буду пробовать.

#35 Re: Програмування Arduino » Проблема с внешней памятью » 2022-07-06 21:49:52

Васятко пише:

Ну и чем библиотека не устроила? Или захотелось секаса?

В какой-то степени да))) Познаю сию науку. Хотелось "напрямую" достучатся по I2C. И теперь не ясно где именно ошибка или хотя бы как ее выявить. Других девайсов с I2C в наличии нет, что бы попробовать к чему-то другому подключиться.

#36 Програмування Arduino » Проблема с внешней памятью » 2022-07-06 16:17:55

PolArt
відповідей: 9

Ситуация такая. Имеются чипы 24С08 (благополучно выпаяные с плат старых компьютерных мониторов). Подключил к Uno по I2C. Если использовать библиотеку Eeprom24C04_08_16-master.zip, то вообще никаких проблем с ними нет. Все пишется и без проблем читается.
Проблема следующая. При попытке обращаться к внешней памяти средствами стандартной библиотеки Wire.h, то никакого взаимодействия не выходит. Прописывал разные адреса и значения. Не записывает и не читает. Код приводу:

#include <Wire.h>    
 
#define disk1 0x50    //Address of 24С08 eeprom chip
 
void setup(void)
{
  Serial.begin(9600);
  Wire.begin();  
 
  unsigned int address = 0;
 
  writeEEPROM(disk1, address, 123);
  Serial.print(readEEPROM(disk1, address), DEC);
}
 
void loop(){}
 
void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data ) 
{
  Wire.beginTransmission(deviceaddress);
  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
  Wire.write(data);
  Wire.endTransmission();
 
  delay(5);
}
 
byte readEEPROM(int deviceaddress, unsigned int eeaddress ) 
{
  byte rdata = 0xFF;
 
  Wire.beginTransmission(deviceaddress);
  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
  Wire.endTransmission();
 
  Wire.requestFrom(deviceaddress,1);
 
  if (Wire.available()) rdata = Wire.read();
 
  return rdata;
}

Вскрывал библиотеку. Там код такого же плана)) Куда копать?

#37 Re: Програмування Arduino » Вопрос по AREF » 2021-11-28 20:55:05

Honey пише:

1. На пины безопасно подавать от -0.5V до VCC+0.5V.
2. То, что в диапазоне [0..AREF), будет преобразовано в 0..1023, все, что ниже 0V, - в 0, все, что выше или равно AREF, - в 1023.

Благодарю за информацию.

#38 Re: Програмування Arduino » Вопрос по AREF » 2021-11-28 17:38:05

renoshnik пише:

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

Понял. Тогда будем искать дальше. Спасибо.

#39 Re: Програмування Arduino » Вопрос по AREF » 2021-11-28 16:00:07

renoshnik пише:

А в чем сложность провести эксперимент ?

А если такая ситуация не предусмотренна устройством микроконтроллера и один из возможных итогов это белый волшебный дым? ))

Хочется изначально узнать теорию перед тем, чтоб что-то делать на практике. Может кто-то задавался таким вопросом и нашел ответ. Гугл не помог, поэтому интересуюсь у знающих людей.

#40 Програмування Arduino » Вопрос по AREF » 2021-11-28 14:07:04

PolArt
відповідей: 8

Такой вопрос. Если я подключаю внешнее опорное напряжение, скажем 2,5 В (и соответственно его инициализирую программно), а на аналоговый вход придет, скажем 2,8 В или 3,3 В или все 5 В (ну, по разным на то причинам. Суть в том, что выше, чем AREF). То что считается с аналогового входа? 1023 или выдаст какую-то ошибку?

Підвал форуму