Tahometr КранкШафт ;) шутки
- Войдите на сайт для отправки комментариев
Сб, 31/01/2015 - 20:53
Схемка

Кодец
//art100 20150131 to write tahometr lcd
#include <LiquidCrystal.h>// LCD1602
//pins------------------------
#define PINRPM1 2 //optosensor
LiquidCrystal lcd(8,9,10,11,12,13);//uno
//consts----------------------
long TmpMs1=0;
int TmpRpm1=0;
//-------------------------------------------------
void RPM1(){
TmpRpm1=(1000000.0/(micros()-TmpMs1))*60;
TmpMs1=micros();
}
//-------------------------------------------------
void setup() {
pinMode(PINRPM1,INPUT_PULLUP);
Serial.begin(9600);
attachInterrupt(0,RPM1,FALLING);
lcd.begin(16,2);//rows,columns
lcd.clear();
lcd.setCursor(0,0);lcd.print("art100 tahometr");
}
//=============================
void loop(){
lcd.setCursor(0,0);lcd.print("art100 tachometer");//
lcd.setCursor(0,1);lcd.print("crankshaft ");lcd.print(TmpRpm1);
Serial.println(TmpRpm1,DEC);
}
//=============================
Кино https://yadi.sk/i/uT0JOD12eNPbK
Ну давайте :)
Пора бы вам уже замахнуться на публикацию алфавита.
Пора бы вам уже замахнуться на публикацию алфавита.
Ну какое-же КранВал когда КоленоВал Коленчатый Вал ведь CrankShaft.
КneeShaft это правильно
но во всех переводчиках дурь.
А КамераВал тоже можно обыграть понимаешь ли CamShaft РаспределительныйВал.
Мы ведь понимаем, что это автомобильная тематика?
Кстати русcкие буквы писать на LCD1602. Напомните ключевое слово для http://ya.ru
в какую сторону копать
// Рисуем букву Й byte I_kr_lit[8] = { B00100, B10101, B10001, B10011, B10101, B11001, B10001, B00000, };такс у меня оказалось русские зашиты
// art100 20150131 lcdtest2 #include <LiquidCrystal.h> //#include <WolfCrystal.h> LiquidCrystal lcd(8,9,10,11,12,13); // Для работы с библиотекой необходимо создать экземпляр WolfCrystal.// В конструкторе передаём указатель на ранее созданный //WolfCrystal WC(&lcd); // Допускается не передавать указатель в конструктор, но тогда перед // первым использованием библиотеки потребуется вызвать метод // AddLCD(LiquidCrystal * LCD) //----------------------------------------------------------------------- void setup() { lcd.begin(16, 2);// Инициализируем LCD как обычно // lcd.print( WC.GS("Привет, мир!") ); // Для того, чтобы использовать русский, применяем метод GS: // Метод принимает char* или String, обрабатывает его и отдаёт // на выходе также String. // Это позволяет, не используя промежуточные переменные, легко // передавать корректную строку в print самого LiquidCrystal. // lcd.print( WC.GS("Русский-rulez!") );// Напишем ещё что-нибудь. lcd.setCursor(0,0);lcd.print("абвгдеЁжзийклмно");// lcd.setCursor(0,1);lcd.print("прстуфхцчшщыэюя6");// } void loop() {}Пните куда дальше копать?
В индикаторе все русские буквы черти как раскиданы.
что-то грустноватенько с библиотеками
как-то все мутно
Хм, а если краншафт перестанет крутится, то на мониторе будет висеть последнее значение ?
Он вторую ночь не спит, крутит, чтобы не останавливалось. :)
Он вторую ночь не спит, крутит, чтобы не останавливалось. :)
:)
ну уи тестовый кодец
// art100 to write 20150201 test lcdrus спасибо неизвестному автору "id" //#include <LiquidCrystal.h>// LCD1602 #include <LiquidCrystalRus.h>// LCD1602 rus //pins----------------------------------- /* 16x2 LCD compatible with the Hitachi HD44780 driver //LiquidCrystal lcd(8,9,10,11,12,13);//uno 1 +5v 2 pin1-20k-pin3 3 gnd 4 RS - 4 5 gnd 6 E - 5 11 LCD D4 pin to digital pin 6 12 LCD D5 pin to digital pin 7 13 LCD D6 pin to digital pin 8 14 LCD D7 pin to digital pin 9 15 Anod +5V nc 16 Katod gnd nc */ //LiquidCrystal lcd(8,9,10,11,12,13);//uno LiquidCrystalRus lcd(8,9,10,11,12,13);//uno //var------------------------------------ byte man_smail[8] =// :) { B00000, B01010, B00100, B00100, B00100, B10001, B01110, B00000, }; byte man_smail2[8] =// :( { B00000, B01010, B00100, B00100, B00100, B00000, B01110, B10001, }; void setup() { lcd.createChar(1,man_smail);// :) Регистрируем собственный символы с кодом 1 // lcd.createChar(1,man_smail2);// :( Регистрируем собственный символы с кодом 1 все возможно 8 штук // мне шутка a5021 Он вторую ночь не спит, крутит, чтобы не останавливалось. :) // значит устанваливаю веселый смайлик :) lcd.begin(16,2);//rows,columns // lcd.clear(); // lcd.setCursor(0,1);//lcd.print("art100 lcd test");// lcd.print("\1"); } //======================================= void loop(){ lcd.setCursor(0,1);lcd.print("\1"); lcd.setCursor(1,0);lcd.print( "cпасибо всем за"); lcd.setCursor(0,1);lcd.print("активное участие"); delay(1000); } //=======================================Резаки от гнда 1к4 контраст 9к1 плюсак при 5 вольтах. Ангельска термиты с выражовываниями в транслитерации. :)
Хм, а если краншафт перестанет крутится, то на мониторе будет висеть последнее значение ?
лень на такие мелочи как lcd.clear сейчас время тратить
надо сюда кинуть readme.txt мой чтобы гуугле проиндекисровал и я потом нашел
20150201 1. Arduino IDE UTF-8 , LCD понимает только однобайтовые символы не UTF-8; 2. Китайские товарищи добавили в знакогенератор дисплея только набор дополнительных кириллических символов, никак не позаботившись о соблюдении вообще какой-либо кодировки. То есть, символ "Б" есть, а вот букву "А" надо использовать из английского набора. Зато есть дроби, значок евро, а также украинское "Г". Наверное, они рассуждали так: "напихаем побольше разных символов, а эти славяне со своей письменностью сами разберутся". 3. В какую именно кодировку транслировать этот самый UTF-8 ? В мою: "я art100 благодарю неизвестного автора id" Результат: LiquidCrystalRus.zip. Надо распаковать в С:\Program Files\arduino-0015хххххххх\hardware\libraries\ Подключать с перекодировкой мою. #include LiquidCrystalRus.h вместо стандартной #include LiquidCrystal.h Внутри вывод всего русского алфавита. Проверьте, что дисплей имеет идентичный знакогенератор. 4. "неизвестный автор id" Несколько слов о том, как все это работает. В памяти программ (а вовсе не в ОЗУ, которого катастрофически мало) создается таблица трансляции. В метод send добавлен код, который при попадании в него старшего и младшего символа кодированного UTF-8 производит необходимые вычисления и посылает нужный байт в дисплей. Собственно, главная тонкость - это подключить процедуры работы с памятью программ #include avr/pgmspace.h и объявить массив трансляции таким образом: PROGMEM prog_uchar utf_recode[] = {...}; затем к нему можно обращаться так: pgm_read_byte_near(utf_recode+index); Особого распухания кода не происходит, потому что подключается не библиотека, а макросы, которые разворачиваются в ассемблерные вставки.