Где найти описание библиотек?
- Войдите на сайт для отправки комментариев
Сб, 28/02/2015 - 19:20
Подскажите, пожалуйста, начинающему где можно найти описание библиотек для ардуино(какие команды, что делают). Искал конкретно описание LiquidCristal_I2C........................Ни чего не нашел :( Только примеры
http://kak-iskat.ru/?q=LiquidCrystal_I2C
по максимуму написанная библиотека dll.h должна иметь описание в виде ремарок в файлах dll.h и dll.cpp
не все разработчики библиотек так делают....
вы, например, комментите каждую строку своего кода, описание каждой процедуры-функции ? нет !
чобы получить описание "молчаливой" библиотеки - нужно разобраться что и как она делает ( написать комментарии и выложить для всех нуждающихся ) :)
если кто-то так сделал - найдёте описание, а обычно - нет :(
http://kak-iskat.ru/?q=LiquidCrystal_I2C
Спасибо, конечно :), но так я и сам искал, но ни чего не нашел.
У меня есть описание библиотеки LiquidCrystal, которая без I2C. Там все команы описаны и как они работают. Хотелось бы почитать описания других полезных библиотек, но их не могу найти. Может они и есть, но на английском, а с ним я не дружу. Приходится эксперементировать с примерами из библиотек, делать по шаблону, во многих случаях не понимая, что делаешь :)
Вот как-то так :)
.......................
вы, например, комментите каждую строку своего кода, описание каждой процедуры-функции ? нет !
............................
ДА!
Я комментирую каждую важную строку и оставляю скетчи в качестве примеров на память для будущих скетчей. Из головы все вылетает моментально....а заглянешь, и все прояснилось :)
разбирайте библиотеку на кирпичики - всё поймёте :)
будите писать библиотеку - оставайтесь при ваших принципах ! :)
Спасибо. Попробую на кирпичики.
А до написания библиотек мне, наверное, пока далековато :) Но будем стремиться
А до написания библиотек мне, наверное, пока далековато
всё относительно... щас начнёте - через три дня свою напишите :)
http://arduino.ru/Hacking/LibraryTutorial
свою напишите - сможете разобраться в других :)
удачи !
Не дружите с английским, ищите примеры использования на русском. И учите английский.
Как правило примеров достаточно, чтобы обойтись без описания. Более подробно - смотреть исходники. Если не знаете ни английского, ни С, то учите оба не на библиотеках.
круто ! для начинающих....
мой базовый - немецкий :( и что ? на пальцах низя рассказать что/как/где ?
не сравнивайте ваш уровень и спрашивающего....
ваши тексты моя конспектирует ( не диферамбы ) :)
Очень жаль что мало людей делятся своим опытом. Я не имею в виду общение на форуме. Хотя из этого форума очень много почерпнул, многое узнал, получил ответы на многие свои вопросы. Спасибо.
Но еще есть люди, как правило сами новички и далеко не ассы, которые пишут статьи про свой опыт, про свои грабли, как решили, где почерпнули информацию. И им огромное спасибо. В свое время бился с подключением LCD по I2C, ни как не получалось пока не прочитал статью какого-то паренька, который тоже очень долго бился с этой проблемой. По пути указанном им все прекрасно получилось. И если б не его статья, я, наверное, очень долго бился бы головой об стену в тоже самое место, куда в свое время бился он.
Запомнился еще тварищ Осипов, которого на этом форуме даже поругивали. Вижу, что он не профи, но благодаря ему я сыкономил массу времени, получил нужное направлени,узнал про многие устройства и их применение.
Спасибо всем. Будем дальше с удовольствием работать над своими познаниями.
И еще спасибо создателям Ардуино! Это как наркотик. Подсел совершенно случайно :)
Очень жаль что мало людей делятся своим опытом.
В интернете много статей о подключении дисплеев с использованием указанной Вами библиотеки. Потому очень странно слышать о том, что мало делятся. В том числе на русском много статей (вот малая часть моря информации)
http://jt5.ru/examples/oled-i2c/
http://cxem.net/arduino/arduino67.php
http://xopk.in/page/i2c
А после того, как получится подключить, можно спросить на форумах, если что то конкретное непонятно, а не кричать, что нет описаний библиотек на русском, не могу найти.
Лично я стараюсь помогать всем, кто адекватно пишет названия тем и более или менее формулирует вопрос. Так что не надо говорить о том, что никто не делится. Рассмотрим Ваш случай.
1. Название темы - нормально.
2. Вопрос сформулирован вполне достаточно. Удачно, что приведен пример, это как правило помогает.
Чем я мог помочь? Найти в гугле примеры использования библиотеки на русском языке, что я и сделал. Еще дал совет, как нужно поступать в данном конкретном случае.
Я потратил на эту тему минут 20 (думаю даже больше) своего времени, в отличии от Вас, у меня времени много меньше на занятием хобби, семья, работа, от 2,5 часов в день на дорогу до работы. Сон по 4-5 часов каждый день. Вечером пришел домой, открыл форум, а там 10 тем с названием "Помогите новичку". Даже если бы я зашел в такую тему о тветил, разве потом вспомнишь, где отвечал и, возможно, где еще тебя ждут? Да сто раз - нет, не запомнить.
Еще один совет, если хотите: задавайте конкретные вопросы, а не фиолсофские. На примере этой темы можно было спросить описание бибилотеки LiquidCrystal_I2C, а также зачем Вам это нужно, что именно не получается, а не спрашивать за все библиотеки мира.
И остальным отвечавшим: я учил английский (да, повезло), потому мой совет "учить английский" может выглядеть издевательским, однако, без языка прочитать хотя бы datasheet будет сложно. Я не прав? Пишите производителям, пусть переводят на русский. По-поводу С/С++ аналогично, если его не учить на примерах, то ничего не получится. Совсем ничего.
Принимайте мои добрые советы или игнорируйте их, я никого не принуждаю.
Всем удачи! Учиться всегда сложно.
kisoft, большое спасибо что откликнулись. Я прекрасно понимаю, что ни кто не обязан отвечать на мои вопросы, но на этом форуме мне уже много раз помогали, я очень благодарен людям и Вам в часности за то, что потратили на меня свое время и во многих случаях мне помогли. Надеюсь, что может быть я тоже когда-то смогу кому-нибудь чем-то помочь.
А на счет библиотек я не кричал, а просто спросил. Дисплей по I2C подключил давно, прекрасно работает. Попробовал и другие библиотеки, такие как SD, Stepper, Ds1307, Ultrasonic... Моих старых мозгов хватило разобраться на примерах и запустить их. Просто мне хотелось узнать, существуют ли подробные описания библиотек на русском. Видимо нет.
Извините, много букв :(
Те библиотеки, что Вы упоминали, достаточно простые, потому описывать особо нечего.
Обычно достаточно посмотреть интерфейс, описание класса. А если подробнее, то смотрим исходники. Во всяком случае я так делаю.
Удачи.
Спасибо. Попробую.
Доброе утро! Я в библиотеке LiquidCrystal_I2C открыл блокнотом файл LiquidCrystal_I2C.h
Там есть следующий блок:
Это описание констант протокола обмена с дисплеем, который Вас не должен волновать, если используете библиотеку, а не собираетесь свою писать. Или это корнстанты, используемые при работе с дисплеем... Смотрите далее - описание класса. И поищите в папке с этой библиотекой пример использования. Как правило, там продемонстрировано использование всех функций.
Доброе утро! Я в библиотеке LiquidCrystal_I2C открыл блокнотом файл LiquidCrystal_I2C.h
Там есть следующий блок:
...Правильно ли я понимаю, что это и есть различные команды библиотеки?
Нет, неправильно.
Если бы Вы взяли на себя труд заглянуть не только в текст библиотеки, но и в дэйташит на дисплей, Вы бы поняли, что в большинстве своем это команды либо режимы работы дисплея. Собственно, если ориентироваться на них, библиотека вообще не нужна. А нужна библиотека как раз для того, чтобы не возникало необходимости запоминать и пользоваться этими константами.
"Команды библиотеки", как правило, являются методами класса - именно там и нужно смореть, т.е в описание класса.
PS. Только не спрашивайте, что такое методы класса, - это никакого отношения к Ардуино не имеет, а относится исключительно к ООП вообще или к С++ в частности.
Ничего сложного эта библиотека из себя не представляет. Там есть константы, верно - это команды протокола общения с дисплеем. Для их использования там есть конкретные методы в публичной части класса, типа cursor() или как-то похоже. Пишу на память. Можно подать команду "вручную", есть метод command().
Все методы "вывода данных" наследованы из класса Print() также как и у Serial, соответственно можно применять их одинаково. У самого класса есть виртуальная переопределяемая функция wirte(), и только.
Сам класс работает через ардуиновский Wire/utility/twi.h, предоставляющий обработчик аппаратного драйвера шины I2C(TWI), который предоставляет вам блокирующий вариант работы (версии старше 1.6.5) с вводом-выводом через интерфейс. Это означает, что пока вы не закончили передачу 1 байта, следующая передача не начнется.
К недостаткам класса LiquidCrystal_I2C можно отнести его реализацию через Wire.h, особенно применение с 4-битным интерфейсом к дисплею: каждая отправка на дисплей 1 байта сопровождается 6 (шестью!) посылками и их "подготовкой": захват шины, подготовка первой тетрады, отправка, освобождение шины .. и так 6 раз. Все это помазано толстым слоем виртуальных и прочих вызовов .. в общем "медленно и печально" (как и все остальное в wiring).
Для шустрой работы с дисплеем (насколько это возможно), советую посмотреть lcd1602.h и arhat_twi.h. Там реализована пока только 1 функция (та самая базовая для виртуального Print.h) - lcdWrite(char*buf, len);
В отличии от этого класса, у меня отправка посылки из 6 байт (требование протокола) производится 1 посылкой с однократной подготовкой данных в буфере. Кроме этого, не выделяются никакие дополнительные буфера ни для аппаратного драйвера ни для классов а-ля Print.
Примерное описание ситуации.