Arduino and external EEPROM AT24C128

Поділитися
Вставка
  • Опубліковано 4 жов 2017
  • If you want to save the value of the variables during power off, the best way is to use EEPROM. This is a non-volatile memory that will help save the value of variables and device settings. The I2C connection makes the use of EEPROM AT24C128 very simple.
    Library and sketch: drive.google.com/open?id=1l99...
    Friends, support the channel!
    R340967932571
    Z422687519909
    U139735106020
    4149625807630874 The bank card of Privat Bank (Ukraine)
    Useful links:
    EEPROM 24C128: ali.pub/1w3yh5
    Display 1602 + expander ports: ali.pub/1vb6ja
    Display 1602: ali.pub/1uo1ww
    Micro SD Module: ali.pub/1tkx36
    Arduino Mega 2560: ali.pub/1ny34r
    Cheapest Arduino Pro Mini for crafts: ali.pub/1ny2z4
    Breadbord: ali.pub/1ny3ae
    Lintels: ali.pub/1ny3la
    Quality crosspieces: ali.pub/1ny3j5
    The most convenient cash back:
    LetyShops: goo.gl/Ev5XgI
    The most profitable cash back on aliexpress:
    Ecomerce: goo.gl/3dDc2w
  • Наука та технологія

КОМЕНТАРІ • 128

  • @Rin_Media
    @Rin_Media 3 роки тому +2

    Всегда приятно и познавательно смотреть твои видео.
    Здоровья тебе и долгих лет.

  • @user-kq4gr9jv7p
    @user-kq4gr9jv7p Рік тому +2

    Огромное спасибо за понятный язык . Понял --- усвоил .👍👍👍👍👍

  • @user-gd4jm1sb4q
    @user-gd4jm1sb4q 4 роки тому

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

    • @UCanDo
      @UCanDo  4 роки тому +1

      Да, конечно. Чипы памяти подключаются параллельно , только пины EN от каждого чипа подключаются по отдельности. Активирую тот или иной пин EN вы задаёте в какую микросхему будет производится запись или чтение

  • @f33net
    @f33net 6 років тому +30

    a) Вообще-то любая память "не поддерживает" вещественные числа и EEPROM ничем от другой памяти в этом смысле не отличается - данные везде хранятся в двоичном виде.
    б) Тут встроенную не знаешь куда потратить... Обычно внешнюю память используют для временного сохранения новой прошивки, которую контролёр получает по IP, ибо в загрузчик вкорячить стек TCP/IP не получается.
    в) Переменные в EEPROM нормальные люди не хранят, ибо накладно по ресурсам. Хранят значения для инициализации переменных при старте, которые могут меняться в ходе жизни (не константы).
    г) "Хранение" с умножением вообще чушь полная! Иногда деньги хранят целыми числами, считая копейками т.е. умножая на 100 сумму перед сохранение, ограничивая таким образом число разрядов до 2-х после точки, которые не нужны. Т.е. можно вещественные числа хранить как целые, двигая десятичную точку, и оперировать с ними так же быстрее, где нет встроенной в проц вещественной математики. Но разрядами, т.е. умножая и деля на 10 .

    • @DmitroVialkov
      @DmitroVialkov 6 років тому +4

      f33net, лайк и в догонку пару комментов
      1. Количество перезаписей у EEPROM хоть и ограничено, но очень велико, и если не писать что-попало ради того, чтобы что-то писать, то встроенной в контроллер хватит на всегда.
      2. Если писать все таки реально приходится что-то часто, например некий лог, который необходимо сохранить даже в случае перезагрузки до момента слива его куда-то, то организуйте алгоритм так, чтобы не писать в одну и туже ячейку все время, а циклически двигайтесь по всей памяти, в таком случае её хватит еще на более долгий срок.
      3. иногда удобней использовать EEPROM вместо флешки для хранения долгих данных, например я так в одном проекте хранил html'ки для веб сервера на ЕСП. Но в таких экзотических случаях подумайте и взвесьте все за и против, и поймите .что скорей всего вам это не надо.

    • @alextrezvy6889
      @alextrezvy6889 6 років тому +1

      "организуйте алгоритм так, чтобы не писать в одну и туже ячейку все время, а циклически двигайтесь по всей памяти" // Как после перезагрузки узнать адрес для считывания? Если его хранить по постоянному адресу, то его придётся каждый раз обновлять, что приводит нас к тому, с чего начали.

    • @DmitroVialkov
      @DmitroVialkov 6 років тому

      Ну так сказано "разработайте алгоритм", он будет в каждом конкретном случае свой, опираться на свои задачи... Но вот пример одного из простых.
      Разделите всю память на блоки. Например пусть будет так... Есть у нас 16 КB, делим на блоки таким образом
      64B (служебная) + 32 * (500B (данные) + 10B (служебная блока))
      В общем служебном блоке записываем номер текущего рабочего блока, при этом выделяем байт в служебной блоке нашей страницы для учета, количества записей, при переполнении изменяем текущий блок на следующий.
      Дополнительно в данной случае можно реализовать дублирование информации в соседних блоках и проверку корректности сохранения. Это один из способов. В каждом случае нужно смотреть на то ,какие данные нужно сохранять. требования к надежности, объему этих данных, скорости работы и прочее...

    • @f33net
      @f33net 6 років тому +1

      Да, со знанием алгоритмов и логикой поле не пахано. :) Самый простой и универсальный: перед использованием обнуляем всю флэшку, первое слово - длинна записи + размер слова, R1:=0, читаем по адресу R1, , если 0, по адресу R1 последняя запись, иначе прибавляем к R1 прочитанное и переходим к "читаем по адресу R1". Запись - аналогично, но когда R1+размер блока данных вылазит за размер флэшки, обнуляем флэшку и R1. И ещё раз: флешка не для пиления её часто меняющимися данными. А 100 000 циклов это каждую минуту непрерывно писать 3 года в одно место.

    • @bjakamax
      @bjakamax 6 років тому +1

      писать блоками, сохранять блоки вместе с инкрементируемыми номерами, после перезагрузки искать блок с максимальным номером, ну например.

  • @user-fd7fj4ii8g
    @user-fd7fj4ii8g 5 років тому

    Ардуино захватывает мир

  • @user-xo2yn4cg5s
    @user-xo2yn4cg5s 2 роки тому +1

    Возьми стандартную библиотеку, переменные флоат занимают 4 байта, а вот булевые занимают байт, если хочешь уменьшить то через маску сохранять и писать свою функцию

  • @user-nh4sg6ql7m
    @user-nh4sg6ql7m 5 років тому

    Привет. Я в этом новичок есть вопрос. А можно в подобную микросхему записать картинку по типу фотографии и вывести на дисплей?

    • @UCanDo
      @UCanDo  5 років тому +2

      Да, можно. Вот пример: ua-cam.com/video/ShnyOOcfbhc/v-deo.html
      В этом видео я подключал дисплей и выводил на него несколько тестовых картинок

  • @shockblaze8669
    @shockblaze8669 4 роки тому

    Как высчитывается ресурс еепром? Одна переменная считается одним циклом записи? Или для каждой ячейки свои 100000 циклов перезаписи?

    • @UCanDo
      @UCanDo  4 роки тому +1

      Для каждой ячейки свой цикл перезаписи

  • @AndriiNikolaiev
    @AndriiNikolaiev 4 роки тому +5

    10:50 а можно умножить на 100, тогда сохранится без потерь. Надо вспомнить и потом разделить на 100.

  • @ax3lblock
    @ax3lblock 4 роки тому

    Подскажите пожалуйста. Как скопировать (сдампить) eeprom.? Arduino mega 2560.

    • @UCanDo
      @UCanDo  4 роки тому

      На сколько я знаю, EEPROM можно прочитать только по ячейкам. А значит, нужно создать цикл, в котором поочередно будут читаться ячейки. А дальше записывать считанные данные в новую EEPROM

  • @dkim7
    @dkim7 6 років тому +2

    а с чем выше скорость работы: с eeprom или с SD картой памяти?

    • @UCanDo
      @UCanDo  6 років тому +3

      У них совершенно разное назначение. Как бы не корректно сравнивать одно с другим. Правильно сравнивать SD и SPI FLASH. Я пробовал, но особой разницы не заметил.

    • @electrosssnake8513
      @electrosssnake8513 6 років тому +1

      Согласен, хотел также написать, не разумно использовать EEPROM для большого количества информации.

    • @TDMLab
      @TDMLab 6 років тому +3

      Эта eeprom по I2C работает 400кГц макс. для ардуино и 1мГц для самой микросхемы, а SD по SPI интерфейсу до 8 МГц для ардуино и до сотен МГц вообще.

  • @user-oq3tv1br9r
    @user-oq3tv1br9r 6 років тому

    А как организовывать быстрый поиск 10значных десятичных чисел по всему размеру памяти ? (понятно что там другой формат)
    Я самим принципом поиска интересуюсь.
    Но именно шустрого поиска.

    • @UCanDo
      @UCanDo  6 років тому

      Интересную задачку вы задали. Первый вопрос: в чем именно искать будете? В ОЗУ или в EEPROM?
      Относительно того как искать в ОЗУ, не подскажу, так как надо знать как она устроена, а я это уже забыл...
      EEPROM разделена на ячейки. Каждая хранит 1 байт, то есть 256 значений. Для хранения переменных Long Integer и Float используется 4 ячейки, то есть 4 байта.
      Для поиска переменной конкретной длинны вам нужно знать адреса начала всех переменных и сколько байт они занимают. Потому как 4 случайные ячейки могут содержать:
      - 4 разных переменных по 1 байт
      - или 2 переменные по 2 байта
      - или 2 переменные по 1 байт и 1 переменная 2 байта
      - или .... и так далее...
      Зная начало и длину можно пробегаться по ним, считывать, сравнивать с искомыми параметрами, считывать дальше... Без знания начала и длинны переменных искать ничего не получится.

    • @user-oq3tv1br9r
      @user-oq3tv1br9r 6 років тому

      Home Made -
      В епром нужно искать. Будут туда писаться 10значные десятичные цыфири, и потом в такой себе базе нужно быстренько сравнить, есть заданный или нету.

    • @UCanDo
      @UCanDo  6 років тому

      +Александр Сановский вы быстро убьете EEPROM. У нее ограничение на запись/считывание

    • @user-oq3tv1br9r
      @user-oq3tv1br9r 6 років тому

      Home Made -
      На запись да, а на считывание???

    • @Gameplayer55055
      @Gameplayer55055 5 років тому

      forОМ выбивать

  • @krepton85you
    @krepton85you 6 років тому

    А чем отличаются 24с32 , 24с64, 24с128, 24с256, 24с512, кроме объема? Почему АТМЕЛ разделил эти модели по разным даташитам, ведь эта библиотека походу поддерживает все эти модели, все они с 16 битной (2-х байтовой) адресацией памяти, не подойдет эта библиотека только для 24с01-24с16 (эти 8 битную адресацию памяти имеют).

    • @UCanDo
      @UCanDo  6 років тому

      Даже и не знаю. Приходит на ум только две вещи: разное время производства (может у них разная структура?). Ну и разные производители. ST тоже производит такие же EEPROM

  • @svbHiTek
    @svbHiTek 2 роки тому +2

    А почему не упомянули что если кто то, из посмотревших решит все тоже самое повторить в цикле loop, в вашем случае Setup выполняется один раз, при старте, то может достаточно быстро протереть дыру в памяти, вообще с этой памятью нужно обращаться осторожно. Автор явно далек от электроники и от программирования. Правильно сказал мне как то один человек: "Раньше в интернете была только полезная информация, так как выходить в него могли в большинстве своем грамотные люди, а сейчас любой у кого есть компьютер строчит бестолковые статьи даже не разбираясь в том о чем ведет речь". Лучше нужно готовиться, а не стряпать ролики как попало.

    • @UCanDo
      @UCanDo  2 роки тому

      То есть в собственной необразованности и глупых действиях вы вините меня???
      🤦‍♂️

    • @svbHiTek
      @svbHiTek 2 роки тому +1

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

  • @yl923
    @yl923 2 роки тому

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

    • @UCanDo
      @UCanDo  2 роки тому

      Лучше всего выпаять EEPROM но если такой возможности нет, то тогда придётся изгаляться.

    • @yl923
      @yl923 2 роки тому

      @@UCanDo Какие варианты мазахизма есть? Может есть смысл стучаться напрямую через СОМ порт? Но какая тогда прога нужна?

    • @UCanDo
      @UCanDo  2 роки тому

      Чтобы считать EEPROM нужно подключаться на прямую к микросхеме.
      Проблема заключается в том что при подаче питания на плату могут быть задействованы другие узлы устройства, которые займут шину данных EEPROM, из-за чего считать содержимое микросхемы не получится. Именно по этому EEPROM выпаивают и считывают отдельно на программаторе.
      В остальных ситуациях все крайне индивидуально. И зависит от схемотехники устройства. Но в любом случае содержимое EEPROM должно считываться на прямую при помощи программатора.

    • @yl923
      @yl923 2 роки тому

      @@UCanDo С программатором проблем считать нет. Проблема в том, что корпус может быть не SOIC8, а BGA или TSSOP и ты уже её не зажмёшь... При этом мне нужно к примеру считать данный в конкретной ячейке. Что бы МК не дёргался и не занимал шину, полагаю надо прижать его ресет к земле, что бы он не дёргался...
      Я просто даже не знаю с чего начать в данном случае, никакой толковой инфы нет...

    • @UCanDo
      @UCanDo  2 роки тому

      Есть переходники. EEPROM напаивается на переходник. А дальше обычное чтение через программатор.
      По схеме вам ничем не подскажу. Так каких-то крайне ситуативно.

  • @KiberDoktoR
    @KiberDoktoR 6 років тому

    Интересное решение.
    Но у меня вопрос: в C++ union уже отменили?
    Зачем этот велосипед?

    • @UCanDo
      @UCanDo  6 років тому

      Этот "велосипед" и мне самому не очень... Но других решений просто не встречал. Можете дать ссылку где об этом почитать можно?

    • @UCanDo
      @UCanDo  6 років тому

      Почитал я про C++ union. И что-то я не понял причем здесь union к записи в EEPROM

    • @IgorYegorkin
      @IgorYegorkin 6 років тому +1

      union позволяет объявить вместе структуру данных и одновременно массив из байтов в одном и том же месте памяти. Для работы с данными обращаемся к структуре, а для чтения-записи всего блока вместе - к массиву байт. Можно и через указатели, но так тоже можно.

    • @UCanDo
      @UCanDo  6 років тому

      Да, но это только работа с данными. Это никак не поможет в одну ячейку EEPROM записать дробное число, на пример 39.1

    • @IgorYegorkin
      @IgorYegorkin 6 років тому +1

      Конечно, одной буквой слово не запишешь, но это альтернативный путь разобрать слово на буквы. Хотя лучше через указатель.

  • @S60Team
    @S60Team 4 роки тому

    Ссылка на Гугл диск не работает. Исправьте, пожалуйста!

    • @UCanDo
      @UCanDo  4 роки тому

      Добрый день. Ссылка работает. Только что проверил.
      Замечено что мобильные устройства (телефоны, планшеты) часто некорректно обрабатывают ссылки. По этому лучше открывать их с компьютера.

  • @user-oy7vn6mk1t
    @user-oy7vn6mk1t Рік тому

    3:10 а всмысле, зачем пропустили WP? Не знаете что это?

  • @user-ow4pv1ir8u
    @user-ow4pv1ir8u 6 років тому +10

    Это что, прикол? Во-первых, hex - 16-ричное, а не двоичное. Во-вторых, о формате дробных чисел уже в школе рассказывают. Открою Вам гигантскую тайну: бывают еще и отрицательные числа. В школу, господа, в школу!

    • @UCanDo
      @UCanDo  6 років тому

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

    • @user-ow4pv1ir8u
      @user-ow4pv1ir8u 6 років тому +1

      +Home Made - 1 бит под порядок, 7 бит мантисса

    • @AndriiNikolaiev
      @AndriiNikolaiev 4 роки тому

      @@user-ow4pv1ir8u Порядок 1 бит? Вы серьёзно?

  • @cutefox8319
    @cutefox8319 4 роки тому

    Хмм, а в чем вообще преимущество внешней ЕЕПРОМ, ведь можно просто микроСД карту использовать и хранить данные там. Ну разве что ЕЕПРОМ юзает i2c а микроСД SPI вроде.. но если выбирать между микроСД и ЕЕПРОМ, какие факты есть для перевеса в сторону внешней ЕЕПРОМ?

    • @UCanDo
      @UCanDo  4 роки тому

      Между ними очень большая разница. Micro SD в первую очередь это хранилище файлов, а EEPROM - хранилище переменных. Это можно сравнить с компьютером. Жесткий диск - SD, а оперативка - EEPROM. Хотя такое сравнение тоже не совсем верное. EEPROM тоже предназначена для хранения информации. Но только переменных. На пример, у вас есть переменная х, которая = 211. Вы просто задаете адрес в EEPROM и туда эту переменную записываете, для сохранности. Потом (опять же) обратившись только к адресу EEPROM, можно назад получить значение переменной.
      Да, можно сохранять переменные и на флешку, но для этого нужно создать файл, открыть его для записи, записать переменную (при этом обязательно нужно знать сколько байт эта переменная занимает, но это верно и для EEPROM), закрыть файл. Потом, при восстановлении переменной, открыть файл, считать именно столько байт, сколько нужно, перевести считанные байты в значение переменной....
      Зато работа с файлами и папками на флешке идет без проблем, а вот на EEPROM создать файловую систему не получится.
      Вообще рекомендую почитать на эту тему что-нибудь. Слишком много между ними отличий чтобы я смог их все перечислить.
      Еще одно отличие: EEPROM имеет очень "мало" памяти. 8 килобайт считается много. Сохранить картинку не получится. А вот переменных можно сохранить аж 8 тысяч! Ну а какой объем у флешек, думаю вы и сами знаете.

    • @cutefox8319
      @cutefox8319 4 роки тому +1

      @@UCanDo благодарю за весьма подробный ответ! Примерно понятно, у ЕЕПРОМ доступ быстрее будет осуществляться, хотя смотря для каких целей.. скажем, прочитать настройки/опции при запуске системы такая разница в скорости наверное не критична.. другое дело если попытаться ее использовать как "оперативную память".. кстати.. отсюда вытекает такой вопрос - а есть ли вообще возможность как-то добавить оперативной памяти микроконтроллеру? Мне тут где-то в комментах попалось что-то про SPI Flash, потом я стал искать на Ютубе это, попалось Serial Flash, там рассказывалось что можно к МК подключить такой модуль и можно во время работы программы пользоваться этой памятью как если бы она была обычной встроенной оперативной, т.е. создавать переменные, обращаться к ним, как я понял это без дополнительных усилий типа специального обращения к чипу в коде.. возможно ли что-то такое на АТмега или тех же ESP32 STM32? Или же это совсем другое что-то.. в общем можно ли как-то добавить ОЗУ и при этом свободно ею пользоваться, чтобы скажем то же создание массива byte x[1000]; автоматически черпало память из дополнительного чипа?

  • @crisselectronicprojects8408
    @crisselectronicprojects8408 6 років тому

    Arduino с I2C и OLED-EEPROM. EEPROM предоставляет данные для монохромного изображения. Кто-нибудь знает?

    • @UCanDo
      @UCanDo  6 років тому

      Сохраняете картинку на EEPROM, а потом ее считываете и выводите.
      Но EEPROM не для этого предназначена. Вам надо SPIFLASH

    • @UCanDo
      @UCanDo  6 років тому

      У вас не хватает памяти в скетче?

    • @crisselectronicprojects8408
      @crisselectronicprojects8408 6 років тому

      да. кто-то использовал atma16 с EEPROM: imgur.com/eCP8MgM
      Мне удалось загрузить EEPROM с помощью библиотек : github.com/cyberp/AT24Cx

    • @UCanDo
      @UCanDo  6 років тому

      Посмотрите это видео: ua-cam.com/video/S8cbIllYc1I/v-deo.html
      Создаете нужную картинку, получаете массив вида:
      static unsigned char gImage_1[] U8G_PROGMEM = {0x00,0x00,0x00,............}
      Где каждая точка представлена в виде 0x00
      Создаете скетч, с картинкой. Этот скетч "по точечно" сохранит картинку в EEPROM.
      Потом в пишите новый скетч в котором будет функция считывания картинки прямо с EEPROM

    • @crisselectronicprojects8408
      @crisselectronicprojects8408 6 років тому

      Для меня не проблема создавать изображения: ua-cam.com/video/n6Cr9eUuuac/v-deo.html

  • @user-sk4ns8sx6k
    @user-sk4ns8sx6k 5 років тому

    Ссылка на библиотеку и скетч не работает!?

    • @UCanDo
      @UCanDo  5 років тому

      Ссылка работает. Перепроверил только что.

    • @user-sk4ns8sx6k
      @user-sk4ns8sx6k 5 років тому

      пишет 404. Произошла ошибка.
      Не удалось найти запрошенный URL на этом сервере. Это все, что мы знаем.

    • @UCanDo
      @UCanDo  5 років тому

      Вы с планшета открываете или с телефона? Ссылка ведёт на ГуглДиск. С компьютера открывается без проблем

    • @user-sk4ns8sx6k
      @user-sk4ns8sx6k 5 років тому

      с ноута, похоже у меня не установлен гугл.диск?!

    • @UCanDo
      @UCanDo  5 років тому

      Нет, должна открыться в браузере страница с возможностью скачать файл. Это общедоступный ресурс.
      Попробуйте в другом браузере. Может у вас проблема с какими-то блокировщиками, или антивирусом.

  • @Gameplayer55055
    @Gameplayer55055 5 років тому

    А 24со8?

    • @UCanDo
      @UCanDo  5 років тому

      Тоже EEPROM , 1 килобайт

  • @kurmaev13
    @kurmaev13 4 роки тому

    Ссылка на библиотеку и скетч не работает!

    • @UCanDo
      @UCanDo  4 роки тому

      Ссылка рабочая. Только что проверил. Если открываете ссылку на телефоне или планшете, то иногда такое наблюдается. Попробуйте открыть ссылку на компьютере.

  • @anlaz1
    @anlaz1 5 років тому +2

    Здравствуйте, помогите решить такую задачу: Есть необходимость на платформе Arduino по команде (внешняя кнопка - например) включить шаговый двигатель.
    После выполнения заданного числа оборотов (1000) остановить его и включить второй шаговый двигатель с аналогичной задачей (допустим 2000 оборотов)и стоп.
    После получения второй команды программа отрабатывает все в обратном порядке.
    Сначала второй мотор 2000 оборотов в обратном направлении, затем первый 1000 оборотов в обратном направлении.
    Нужен скетч программы, по возможности с подробными комментариями, так-как ваш покорный слуга сущий чайник в программировании
    С уважением и надеждой.

    • @masterkit9517
      @masterkit9517 5 років тому +1

      это очень легко, поищите сами

    • @anlaz1
      @anlaz1 5 років тому +1

      Как говорил товарищ Бендер: "Я бы взял по частям, но мне нужно сразу".
      Что в моем случае означает - написал бы, да не умею. Поэтому и обратился к Вам.😶

    • @masterkit9517
      @masterkit9517 5 років тому +1

      xn--18-6kcdusowgbt1a4b.xn--p1ai/%D1%88%D0%B0%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9-%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE/ здесь для начала найдите меня в vk там пишите

    • @krypton1886
      @krypton1886 Рік тому

      @@anlaz1, разобрались?

    • @anlaz1
      @anlaz1 Рік тому

      К сожалению не могу найти правильный скетч.☹

  • @gennadiykuznetsov3723
    @gennadiykuznetsov3723 6 років тому

    А 25 серию так перепрошить можно?

    • @UCanDo
      @UCanDo  6 років тому

      25-я серия это не EEPROM, а SPI FLASH. С ней совершенно другой принцип работы.
      Постараюсь в будущих видео сделать на них обзор.

    • @gennadiykuznetsov3723
      @gennadiykuznetsov3723 6 років тому

      Спасибо за ответ. Она у меня в телеке спрыгнула, перепрошить надо, а под рукой только arduino mega.

    • @kiprus1476
      @kiprus1476 3 роки тому

      @@gennadiykuznetsov3723программатор ch341a за не дорого можно купить(200 руб) и можно будет кучу всего прошивать

  • @user-er1nn1qg9r
    @user-er1nn1qg9r 4 роки тому

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

    • @UCanDo
      @UCanDo  4 роки тому

      Ссылка рабочая. Ошибка бывает если открывать на телефоне или планшете. Открывайте ссылку на компьютере

    • @user-er1nn1qg9r
      @user-er1nn1qg9r 4 роки тому

      @@UCanDo слушай, ну тогда подскажи как с компа через какой браузер качать? все мне известные выдают ошибку 404, тоже самое после формата ц и установки чистой системы. как черт побери у тебя работает эта ссылка?

    • @UCanDo
      @UCanDo  4 роки тому

      Странно, у меня открывается. Пробую в Хроме.
      Только что проверил, в Опере ссылка не открывается (тоже 404). Раньше работало. Несколько дней назад изменилась политика предоставления услуг Гугла, может это как-то повлияло.
      Архив перезалил. У меня открывается во всех браузерах. Так же дублирую ссылку здесь: drive.google.com/open?id=1l99bhLMaMlG-IKiN5CK7zrPUeQ__8aQJ

  • @rogalik007
    @rogalik007 6 років тому +5

    Говори слово write - врайт. Так правильно.

    • @user-kc1jj4jk4n
      @user-kc1jj4jk4n 6 років тому +8

      Рогалик как раз врайт говорить не правильно
      Правильно говорить райт

  • @user-er1nn1qg9r
    @user-er1nn1qg9r 4 роки тому

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

    • @UCanDo
      @UCanDo  4 роки тому

      Ссылка рабочая. Бывает что ссылки на ГуглДиск не открываются на телефонах или планшетах. Открывайте с компьютера.

  • @avtohelpII
    @avtohelpII 5 років тому

    Сканер видит 24C04 и 24C16, не с одним, а с множеством адресов
    Сканер I2C eeprom AT24C04
    Scanning...
    I2C device found at address 0x50 !
    I2C device found at address 0x51 !
    done
    ua-cam.com/video/6cni_zKOsqA/v-deo.html
    Сканер I2C eeprom AT24C16
    Scanning...
    I2C device found at address 0x50 !
    I2C device found at address 0x51 !
    I2C device found at address 0x52 !
    I2C device found at address 0x53 !
    I2C device found at address 0x54 !
    I2C device found at address 0x55 !
    I2C device found at address 0x56 !
    I2C device found at address 0x57 !
    done
    ua-cam.com/video/wOxwScntD_E/v-deo.html
    Подскажите пожалуйста, как решить эту проблему или киньте ссылку где можно об этом узнать.

    • @UCanDo
      @UCanDo  5 років тому

      Это очень странно. Может что-то не так подключено? Попробуйте с этим вопросом обратиться на форум radiokot

  • @user-vj3fj2hu1x
    @user-vj3fj2hu1x 3 роки тому

    HEX есть 16 разрядов, а не 2 разряда 6:00

    • @UCanDo
      @UCanDo  3 роки тому

      Оговорился

  • @Igoryanik
    @Igoryanik 3 роки тому

    а как записать и считать int значение из внешней памяти

    • @UCanDo
      @UCanDo  3 роки тому

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

    • @Igoryanik
      @Igoryanik 3 роки тому +1

      @@UCanDo ок спс было бы неплохо глянуть

    • @UCanDo
      @UCanDo  3 роки тому

      #define addr 0 // адрес, занимает 2 байта
      int i = 2500; // переменная
      void setup() {
      writeIntIntoEEPROM(addr, i); // сохраняем значение в EEPROM
      i = readIntFromEEPROM(addr); // читаем из EEPROM
      }
      void loop() {
      }
      void writeIntIntoEEPROM(int address, int number)
      {
      EEPROM.update(address, number >> 8);
      EEPROM.update(address + 1, number & 0xFF);
      }
      int readIntFromEEPROM(int address)
      {
      byte byte1 = EEPROM.read(address);
      byte byte2 = EEPROM.read(address + 1);
      return (byte1

    • @Igoryanik
      @Igoryanik 3 роки тому

      @@UCanDo не работает с внешней памятью

    • @UCanDo
      @UCanDo  3 роки тому

      Работает. Просто стандартные команды записи и чтения замените на команды записи и чтения для внешней памяти:
      Вместо
      EEPROM.update
      напишите:
      eeprom.writeByte
      EEPROM.read
      замените на:
      eeprom.readByte

  • @francoisdastardly4405
    @francoisdastardly4405 5 років тому

    If you put an english title you MUST speak english.

    • @rKvinty
      @rKvinty 3 роки тому

      У него не английский заголовок