Вывод показаниq датчика DHT22 на экран Nokia LCD 5110

AVik
Offline
Зарегистрирован: 27.01.2013

 

Задача:

1. Вывести показания датчика DHT22 на экран Nokia LCD 5110

Оборудование:

2. Arduino Nano V3.0 ATmega328

3. DHT22

4. Nokia LCD 5110

Решено:

Датчик подключен, и выбрасывает показания в COM порт.

Экран подключен, и показывает отправленный на него текст.

Ошибка:

Проблема с отображением значений переменнох «t» и «h» на экран.

Ошибка в компиляторе,

DHT22_LCD_5110.ino: In function 'void loop()':

DHT22_LCD_5110:221: error: cannot convert 'float' to 'char*' for argument '1' to 'void LcdString(char*)'

 

Код программы:

// 27.01.2013 DHT22 + NOKIA LCD 5110

//--> DHT22
#include "DHT.h"
#define DHTPIN 2 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE);
//--
//--> LCD 5110
#define PIN_SCE   7
#define PIN_RESET 6
#define PIN_DC    5
#define PIN_SDIN  4
#define PIN_SCLK  3

#define LCD_C     LOW
#define LCD_D     HIGH
int count=0;
char dat[4];
char disp_tab[]={'0','1','2','3','4','5','6','7','8','9'};
#define LCD_X     84
#define LCD_Y     48
char buf[72]="A_simple_example_of_interfacing_with_the_84_x_48_pixel_Nokia_3310_LCD!!";
static const byte ASCII[][5] =
{
 {0x00, 0x00, 0x00, 0x00, 0x00} // 20  
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j 
,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
};

void LcdCharacter(char character)
{
  LcdWrite(LCD_D, 0x00);
  for (int index = 0; index < 5; index++)
  {
    LcdWrite(LCD_D, ASCII[character - 0x20][index]);
  }
  LcdWrite(LCD_D, 0x00);
}

void LcdClear(void)
{
  for (int index = 0; index < LCD_X * LCD_Y / 8; index++)
  {
    LcdWrite(LCD_D, 0x00);
  }
}

void LcdInitialise(void)
{
  pinMode(PIN_SCE, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);
  pinMode(PIN_DC, OUTPUT);
  pinMode(PIN_SDIN, OUTPUT);
  pinMode(PIN_SCLK, OUTPUT);
  digitalWrite(PIN_RESET, LOW);
  digitalWrite(PIN_RESET, HIGH);
  LcdWrite(LCD_C, 0x21 );  // LCD Extended Commands.
  LcdWrite(LCD_C, 0xB1 );  // Set LCD Vop (Contrast). 
  LcdWrite(LCD_C, 0x04 );  // Set Temp coefficent. //0x04
  LcdWrite(LCD_C, 0x14 );  // LCD bias mode 1:48. //0x13
  LcdWrite(LCD_C, 0x0C );  // LCD in normal mode.
  LcdWrite(LCD_C, 0x20 );
  LcdWrite(LCD_C, 0x0C );
}

void LcdString(char *characters)
{
  while (*characters)
  {
    LcdCharacter(*characters++);
  }
}

void LcdWrite(byte dc, byte data)
{
  digitalWrite(PIN_DC, dc);
  digitalWrite(PIN_SCE, LOW);
  shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
  digitalWrite(PIN_SCE, HIGH);
}
void gotoXY(int x, int y)
{
  LcdWrite( 0, 0x80 | x);  // Column.
  LcdWrite( 0, 0x40 | y);  // Row.  

}
  
void setup()
{
//DHT22
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
  dht.begin();
//--
// ------
  analogReference(DEFAULT);
  LcdInitialise();
  LcdClear();
  LcdString("- - TEST - -"); // line 0
  gotoXY(0, 2);
  LcdString("++++++++++++"); // line 2
  LcdClear();
//  LcdString(buf);
}

void loop(){
//DHT22  
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
    delay(2000);
  }
//---
    delay(300);
    gotoXY(0, 0);
    LcdString("----TEMP----"); // line 0
    delay(300);
    gotoXY(0, 2);
    LcdString(t); // Линия 2 экрана, отображение Температуры с датчика
}

Ругается на 221 строчку кода

Я так понимаю что проблема в несовместимости значений переменных 'float' и 'char*'

И значение датчика надо куда то поместить промежуточно, и уже потом отправить его на экран.

 

Ответа не нашел поиском.

ustas
Offline
Зарегистрирован: 12.03.2012

диагностировали правильно :). Теперь осталось погуглить что-то типа "преобразование типов", "преобразовать число в строку" и т.п.

Vano™
Offline
Зарегистрирован: 02.02.2013

Аналогичная  проблема , хотел  перейти  от WH1602  к LCD  т.к  информации можно вывести больше.

Из примеров подключения  нашел подобный код , переделал LcdCharacter()  для понимания  русского языка (т.к там по 2 байта).

проверил , текст  выводит  обрадовался  и отложил  arduino  до лучших времён ( когда пригодится).

Настало время  для  простого  минитеста (поделки )  нужно было считать   несколько  аналоговых выводов(напряжение,ток итд) и вывести  их на дисплей.  А не тут то было  , значения в float   а  функция  хочет массив с char.

и получаем соответсвенно   такуюже ошибку  как и у топикстартера .

для  примера   попробывал просто создать строковую переменную  и отдать в функцию ,  строковые данные также не  принимает .

  stringOne = String("Sensor ");
  stringTwo = String("value");
   stringOne += stringTwo;
   stringOne += " for input ";
   stringOne += 'A';
   stringOne += 0;
  
  LcdString(stringOne);

error: cannot convert 'String' to 'char*' for argument '1' to 'void LcdString(char*)'

как быть ?     как изменить  LcdString()  что бы она хавала всё  подряд ?


void LcdString(char *characters)
{
  while (*characters)
  {
    LcdCharacter(*characters++);
  }
}

 

maksim
Offline
Зарегистрирован: 12.02.2012

Либо вы отказываетесь от использования String в пользу string, либо перед тем как скормить функции LcdString(); строку переводите в массив символов, прочитав описание класса String и воспользовавшись его методами toCharArray() и length().

  char Str1[stringOne.length()+1];
  stringOne.toCharArray(Str1, stringOne.length());
  LcdString(Str1);

 

Vano™
Offline
Зарегистрирован: 02.02.2013

спасибо  за быстрый ответ ,  не стал  сильно ждать  решил еще  порыскать  инет .

отыскал   драйвер (библиотеку ) на PCD8544 , с  примером  термометра  ,  там  немного подругому сделанно  , но все строки и переменые фоспринимает как должное ,  естественное свою  хотелку  быстро  переписал  под эту библиотеку    ,  успешно  вывел свои показания на дисплей.

Но есть одно как всегда НО!  Русский  язык как всегда отсутсвует.

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

Для  примера как выше    расширял  вот таким методом.


static byte dbit;
/*
&nbsp;* Таблица для отображения символов (ASCII[0x20-0x7F] + CP1251[0xC0-0xFF] = всего 160 символов)
&nbsp;*/
static const byte ASCII[][5]=
{
&nbsp;&nbsp; { 0x00, 0x00, 0x00, 0x00, 0x00 },&nbsp;&nbsp; //&nbsp;&nbsp; 0x20&nbsp; 32
&nbsp;&nbsp; { 0x00, 0x00, 0x5F, 0x00, 0x00 },&nbsp;&nbsp; // ! 0x21&nbsp; 33
&nbsp;&nbsp; { 0x00, 0x07, 0x00, 0x07, 0x00 },&nbsp;&nbsp; // " 0x22&nbsp; 34
&nbsp;&nbsp; { 0x14, 0x7F, 0x14, 0x7F, 0x14 },&nbsp;&nbsp; // # 0x23&nbsp; 35
&nbsp;&nbsp; { 0x24, 0x2A, 0x7F, 0x2A, 0x12 },&nbsp;&nbsp; // $ 0x24&nbsp; 36
&nbsp;&nbsp; { 0x4C, 0x2C, 0x10, 0x68, 0x64 },&nbsp;&nbsp; // % 0x25&nbsp; 37
&nbsp;&nbsp; { 0x36, 0x49, 0x55, 0x22, 0x50 },&nbsp;&nbsp; // & 0x26&nbsp; 38
&nbsp;&nbsp; { 0x00, 0x05, 0x03, 0x00, 0x00 },&nbsp;&nbsp; // ' 0x27&nbsp; 39
&nbsp;&nbsp; { 0x00, 0x1C, 0x22, 0x41, 0x00 },&nbsp;&nbsp; // ( 0x28&nbsp; 40
&nbsp;&nbsp; { 0x00, 0x41, 0x22, 0x1C, 0x00 },&nbsp;&nbsp; // ) 0x29&nbsp; 41
&nbsp;&nbsp; { 0x14, 0x08, 0x3E, 0x08, 0x14 },&nbsp;&nbsp; // * 0x2A&nbsp; 42
&nbsp;&nbsp; { 0x08, 0x08, 0x3E, 0x08, 0x08 },&nbsp;&nbsp; // + 0x2B&nbsp; 43
&nbsp;&nbsp; { 0x00, 0x00, 0x50, 0x30, 0x00 },&nbsp;&nbsp; // , 0x2C&nbsp; 44
&nbsp;&nbsp; { 0x10, 0x10, 0x10, 0x10, 0x10 },&nbsp;&nbsp; // - 0x2D&nbsp; 45
&nbsp;&nbsp; { 0x00, 0x60, 0x60, 0x00, 0x00 },&nbsp;&nbsp; // . 0x2E&nbsp; 46
&nbsp;&nbsp; { 0x20, 0x10, 0x08, 0x04, 0x02 },&nbsp;&nbsp; // / 0x2F&nbsp; 47
&nbsp;&nbsp; { 0x3E, 0x51, 0x49, 0x45, 0x3E },&nbsp;&nbsp; // 0 0x30&nbsp; 48
&nbsp;&nbsp; { 0x00, 0x42, 0x7F, 0x40, 0x00 },&nbsp;&nbsp; // 1 0x31&nbsp; 49
&nbsp;&nbsp; { 0x42, 0x61, 0x51, 0x49, 0x46 },&nbsp;&nbsp; // 2 0x32&nbsp; 50
&nbsp;&nbsp; { 0x21, 0x41, 0x45, 0x4B, 0x31 },&nbsp;&nbsp; // 3 0x33&nbsp; 51
&nbsp;&nbsp; { 0x18, 0x14, 0x12, 0x7F, 0x10 },&nbsp;&nbsp; // 4 0x34&nbsp; 52
&nbsp;&nbsp; { 0x27, 0x45, 0x45, 0x45, 0x39 },&nbsp;&nbsp; // 5 0x35&nbsp; 53
&nbsp;&nbsp; { 0x3C, 0x4A, 0x49, 0x49, 0x30 },&nbsp;&nbsp; // 6 0x36&nbsp; 54
&nbsp;&nbsp; { 0x01, 0x71, 0x09, 0x05, 0x03 },&nbsp;&nbsp; // 7 0x37&nbsp; 55
&nbsp;&nbsp; { 0x36, 0x49, 0x49, 0x49, 0x36 },&nbsp;&nbsp; // 8 0x38&nbsp; 56
&nbsp;&nbsp; { 0x06, 0x49, 0x49, 0x29, 0x1E },&nbsp;&nbsp; // 9 0x39&nbsp; 57
&nbsp;&nbsp; { 0x00, 0x36, 0x36, 0x00, 0x00 },&nbsp;&nbsp; // : 0x3A&nbsp; 58
&nbsp;&nbsp; { 0x00, 0x56, 0x36, 0x00, 0x00 },&nbsp;&nbsp; // ; 0x3B&nbsp; 59
&nbsp;&nbsp; { 0x08, 0x14, 0x22, 0x41, 0x00 },&nbsp;&nbsp; // < 0x3C&nbsp; 60
&nbsp;&nbsp; { 0x14, 0x14, 0x14, 0x14, 0x14 },&nbsp;&nbsp; // = 0x3D&nbsp; 61
&nbsp;&nbsp; { 0x00, 0x41, 0x22, 0x14, 0x08 },&nbsp;&nbsp; // > 0x3E&nbsp; 62
&nbsp;&nbsp; { 0x02, 0x01, 0x51, 0x09, 0x06 },&nbsp;&nbsp; // ? 0x3F&nbsp; 63
&nbsp;&nbsp; { 0x32, 0x49, 0x79, 0x41, 0x3E },&nbsp;&nbsp; // @ 0x40&nbsp; 64
&nbsp;&nbsp; { 0x7E, 0x11, 0x11, 0x11, 0x7E },&nbsp;&nbsp; // A 0x41&nbsp; 65
&nbsp;&nbsp; { 0x7F, 0x49, 0x49, 0x49, 0x36 },&nbsp;&nbsp; // B 0x42&nbsp; 66
&nbsp;&nbsp; { 0x3E, 0x41, 0x41, 0x41, 0x22 },&nbsp;&nbsp; // C 0x43&nbsp; 67
&nbsp;&nbsp; { 0x7F, 0x41, 0x41, 0x22, 0x1C },&nbsp;&nbsp; // D 0x44&nbsp; 68
&nbsp;&nbsp; { 0x7F, 0x49, 0x49, 0x49, 0x41 },&nbsp;&nbsp; // E 0x45&nbsp; 69
&nbsp;&nbsp; { 0x7F, 0x09, 0x09, 0x09, 0x01 },&nbsp;&nbsp; // F 0x46&nbsp; 70
&nbsp;&nbsp; { 0x3E, 0x41, 0x49, 0x49, 0x7A },&nbsp;&nbsp; // G 0x47&nbsp; 71
&nbsp;&nbsp; { 0x7F, 0x08, 0x08, 0x08, 0x7F },&nbsp;&nbsp; // H 0x48&nbsp; 72
&nbsp;&nbsp; { 0x00, 0x41, 0x7F, 0x41, 0x00 },&nbsp;&nbsp; // I 0x49&nbsp; 73
&nbsp;&nbsp; { 0x20, 0x40, 0x41, 0x3F, 0x01 },&nbsp;&nbsp; // J 0x4A&nbsp; 74
&nbsp;&nbsp; { 0x7F, 0x08, 0x14, 0x22, 0x41 },&nbsp;&nbsp; // K 0x4B&nbsp; 75
&nbsp;&nbsp; { 0x7F, 0x40, 0x40, 0x40, 0x40 },&nbsp;&nbsp; // L 0x4C&nbsp; 76
&nbsp;&nbsp; { 0x7F, 0x02, 0x0C, 0x02, 0x7F },&nbsp;&nbsp; // M 0x4D&nbsp; 77
&nbsp;&nbsp; { 0x7F, 0x04, 0x08, 0x10, 0x7F },&nbsp;&nbsp; // N 0x4E&nbsp; 78
&nbsp;&nbsp; { 0x3E, 0x41, 0x41, 0x41, 0x3E },&nbsp;&nbsp; // O 0x4F&nbsp; 79
&nbsp;&nbsp; { 0x7F, 0x09, 0x09, 0x09, 0x06 },&nbsp;&nbsp; // P 0x50&nbsp; 80
&nbsp;&nbsp; { 0x3E, 0x41, 0x51, 0x21, 0x5E },&nbsp;&nbsp; // Q 0x51&nbsp; 81
&nbsp;&nbsp; { 0x7F, 0x09, 0x19, 0x29, 0x46 },&nbsp;&nbsp; // R 0x52&nbsp; 82
&nbsp;&nbsp; { 0x46, 0x49, 0x49, 0x49, 0x31 },&nbsp;&nbsp; // S 0x53&nbsp; 83
&nbsp;&nbsp; { 0x01, 0x01, 0x7F, 0x01, 0x01 },&nbsp;&nbsp; // T 0x54&nbsp; 84
&nbsp;&nbsp; { 0x3F, 0x40, 0x40, 0x40, 0x3F },&nbsp;&nbsp; // U 0x55&nbsp; 85
&nbsp;&nbsp; { 0x1F, 0x20, 0x40, 0x20, 0x1F },&nbsp;&nbsp; // V 0x56&nbsp; 86
&nbsp;&nbsp; { 0x3F, 0x40, 0x38, 0x40, 0x3F },&nbsp;&nbsp; // W 0x57&nbsp; 87
&nbsp;&nbsp; { 0x63, 0x14, 0x08, 0x14, 0x63 },&nbsp;&nbsp; // X 0x58&nbsp; 88
&nbsp;&nbsp; { 0x07, 0x08, 0x70, 0x08, 0x07 },&nbsp;&nbsp; // Y 0x59&nbsp; 89
&nbsp;&nbsp; { 0x61, 0x51, 0x49, 0x45, 0x43 },&nbsp;&nbsp; // Z 0x5A&nbsp; 90
&nbsp;&nbsp; { 0x00, 0x7F, 0x41, 0x41, 0x00 },&nbsp;&nbsp; // [ 0x5B&nbsp; 91
&nbsp;&nbsp; { 0x02, 0x04, 0x08, 0x10, 0x20 },&nbsp;&nbsp; // \ 0x5C&nbsp; 92
&nbsp;&nbsp; { 0x00, 0x41, 0x41, 0x7F, 0x00 },&nbsp;&nbsp; // ] 0x5D&nbsp; 93
&nbsp;&nbsp; { 0x04, 0x02, 0x01, 0x02, 0x04 },&nbsp;&nbsp; // ^ 0x5E&nbsp; 94
&nbsp;&nbsp; { 0x40, 0x40, 0x40, 0x40, 0x40 },&nbsp;&nbsp; // _ 0x5F&nbsp; 95
&nbsp;&nbsp; { 0x00, 0x01, 0x02, 0x04, 0x00 },&nbsp;&nbsp; // ` 0x60&nbsp; 96
&nbsp;&nbsp; { 0x20, 0x54, 0x54, 0x54, 0x78 },&nbsp;&nbsp; // a 0x61&nbsp; 97
&nbsp;&nbsp; { 0x7F, 0x48, 0x44, 0x44, 0x38 },&nbsp;&nbsp; // b 0x62&nbsp; 98
&nbsp;&nbsp; { 0x38, 0x44, 0x44, 0x44, 0x20 },&nbsp;&nbsp; // c 0x63&nbsp; 99
&nbsp;&nbsp; { 0x38, 0x44, 0x44, 0x48, 0x7F },&nbsp;&nbsp; // d 0x64 100
&nbsp;&nbsp; { 0x38, 0x54, 0x54, 0x54, 0x18 },&nbsp;&nbsp; // e 0x65 101
&nbsp;&nbsp; { 0x08, 0x7E, 0x09, 0x01, 0x02 },&nbsp;&nbsp; // f 0x66 102
&nbsp;&nbsp; { 0x0C, 0x52, 0x52, 0x52, 0x3E },&nbsp;&nbsp; // g 0x67 103
&nbsp;&nbsp; { 0x7F, 0x08, 0x04, 0x04, 0x78 },&nbsp;&nbsp; // h 0x68 104
&nbsp;&nbsp; { 0x00, 0x44, 0x7D, 0x40, 0x00 },&nbsp;&nbsp; // i 0x69 105
&nbsp;&nbsp; { 0x20, 0x40, 0x44, 0x3D, 0x00 },&nbsp;&nbsp; // j 0x6A 106
&nbsp;&nbsp; { 0x7F, 0x10, 0x28, 0x44, 0x00 },&nbsp;&nbsp; // k 0x6B 107
&nbsp;&nbsp; { 0x00, 0x41, 0x7F, 0x40, 0x00 },&nbsp;&nbsp; // l 0x6C 108
&nbsp;&nbsp; { 0x7C, 0x04, 0x18, 0x04, 0x78 },&nbsp;&nbsp; // m 0x6D 109
&nbsp;&nbsp; { 0x7C, 0x08, 0x04, 0x04, 0x78 },&nbsp;&nbsp; // n 0x6E 110
&nbsp;&nbsp; { 0x38, 0x44, 0x44, 0x44, 0x38 },&nbsp;&nbsp; // o 0x6F 111
&nbsp;&nbsp; { 0x7C, 0x14, 0x14, 0x14, 0x08 },&nbsp;&nbsp; // p 0x70 112
&nbsp;&nbsp; { 0x08, 0x14, 0x14, 0x18, 0x7C },&nbsp;&nbsp; // q 0x71 113
&nbsp;&nbsp; { 0x7C, 0x08, 0x04, 0x04, 0x08 },&nbsp;&nbsp; // r 0x72 114
&nbsp;&nbsp; { 0x48, 0x54, 0x54, 0x54, 0x20 },&nbsp;&nbsp; // s 0x73 115
&nbsp;&nbsp; { 0x04, 0x3F, 0x44, 0x40, 0x20 },&nbsp;&nbsp; // t 0x74 116
&nbsp;&nbsp; { 0x3C, 0x40, 0x40, 0x20, 0x7C },&nbsp;&nbsp; // u 0x75 117
&nbsp;&nbsp; { 0x1C, 0x20, 0x40, 0x20, 0x1C },&nbsp;&nbsp; // v 0x76 118
&nbsp;&nbsp; { 0x3C, 0x40, 0x30, 0x40, 0x3C },&nbsp;&nbsp; // w 0x77 119
&nbsp;&nbsp; { 0x44, 0x28, 0x10, 0x28, 0x44 },&nbsp;&nbsp; // x 0x78 120
&nbsp;&nbsp; { 0x0C, 0x50, 0x50, 0x50, 0x3C },&nbsp;&nbsp; // y 0x79 121
&nbsp;&nbsp; { 0x44, 0x64, 0x54, 0x4C, 0x44 },&nbsp;&nbsp; // z 0x7A 122
&nbsp;&nbsp; { 0x00, 0x08, 0x36, 0x41, 0x00 },&nbsp;&nbsp; // { 0x7B 123
&nbsp;&nbsp; { 0x00, 0x00, 0x7F, 0x00, 0x00 },&nbsp;&nbsp; // | 0x7C 124
&nbsp;&nbsp; { 0x00, 0x41, 0x36, 0x08, 0x00 },&nbsp;&nbsp; // } 0x7D 125
&nbsp;&nbsp; { 0x08, 0x04, 0x08, 0x10, 0x08 },&nbsp;&nbsp; // ~ 0x7E 126
&nbsp;&nbsp; { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },&nbsp;&nbsp; //  0x7F 127

&nbsp;&nbsp; { 0x7C, 0x12, 0x11, 0x12, 0x7C },&nbsp;&nbsp; // А 0xC0 192
&nbsp;&nbsp; { 0x7F, 0x49, 0x49, 0x49, 0x31 },&nbsp;&nbsp; // Б 0xC1 193
&nbsp;&nbsp; { 0x7F, 0x49, 0x49, 0x49, 0x36 },&nbsp;&nbsp; // В 0xC2 194
&nbsp;&nbsp; { 0x7F, 0x01, 0x01, 0x01, 0x01 },&nbsp;&nbsp; // Г 0xC3 195
&nbsp;&nbsp; { 0x60, 0x3F, 0x21, 0x3F, 0x60 },&nbsp;&nbsp; // Д 0xC4 196
&nbsp;&nbsp; { 0x7F, 0x49, 0x49, 0x49, 0x41 },&nbsp;&nbsp; // Е 0xC5 197
&nbsp;&nbsp; { 0x77, 0x08, 0x7F, 0x08, 0x77 },&nbsp;&nbsp; // Ж 0xC6 198
&nbsp;&nbsp; { 0x22, 0x41, 0x49, 0x49, 0x36 },&nbsp;&nbsp; // З 0xC7 199
&nbsp;&nbsp; { 0x7F, 0x10, 0x08, 0x04, 0x7F },&nbsp;&nbsp; // И 0xC8 200
&nbsp;&nbsp; { 0x7E, 0x10, 0x09, 0x04, 0x7E },&nbsp;&nbsp; // Й 0xC9 201
&nbsp;&nbsp; { 0x7F, 0x08, 0x14, 0x22, 0x41 },&nbsp;&nbsp; // К 0xCA 202
&nbsp;&nbsp; { 0x40, 0x3E, 0x01, 0x01, 0x7F },&nbsp;&nbsp; // Л 0xCB 203
&nbsp;&nbsp; { 0x7F, 0x02, 0x0C, 0x02, 0x7F },&nbsp;&nbsp; // М 0xCC 204
&nbsp;&nbsp; { 0x7F, 0x08, 0x08, 0x08, 0x7F },&nbsp;&nbsp; // Н 0xCD 205
&nbsp;&nbsp; { 0x3E, 0x41, 0x41, 0x41, 0x3E },&nbsp;&nbsp; // О 0xCE 206
&nbsp;&nbsp; { 0x7F, 0x01, 0x01, 0x01, 0x7F },&nbsp;&nbsp; // П 0xCF 207
&nbsp;&nbsp; { 0x7F, 0x09, 0x09, 0x09, 0x06 },&nbsp;&nbsp; // Р 0xD0 208
&nbsp;&nbsp; { 0x3E, 0x41, 0x41, 0x41, 0x22 },&nbsp;&nbsp; // С 0xD1 209
&nbsp;&nbsp; { 0x01, 0x01, 0x7F, 0x01, 0x01 },&nbsp;&nbsp; // Т 0xD2 210
&nbsp;&nbsp; { 0x07, 0x48, 0x48, 0x48, 0x3F },&nbsp;&nbsp; // У 0xD3 211
&nbsp;&nbsp; { 0x0E, 0x11, 0x7F, 0x11, 0x0E },&nbsp;&nbsp; // Ф 0xD4 212
&nbsp;&nbsp; { 0x63, 0x14, 0x08, 0x14, 0x63 },&nbsp;&nbsp; // Х 0xD5 213
&nbsp;&nbsp; { 0x3F, 0x20, 0x20, 0x3F, 0x60 },&nbsp;&nbsp; // Ц 0xD6 214
&nbsp;&nbsp; { 0x07, 0x08, 0x08, 0x08, 0x7F },&nbsp;&nbsp; // Ч 0xD7 215
&nbsp;&nbsp; { 0x7F, 0x40, 0x7E, 0x40, 0x7F },&nbsp;&nbsp; // Ш 0xD8 216
&nbsp;&nbsp; { 0x3F, 0x20, 0x3F, 0x20, 0x7F },&nbsp;&nbsp; // Щ 0xD9 217
&nbsp;&nbsp; { 0x01, 0x7F, 0x48, 0x48, 0x30 },&nbsp;&nbsp; // Ъ 0xDA 218
&nbsp;&nbsp; { 0x7F, 0x48, 0x30, 0x00, 0x7F },&nbsp;&nbsp; // Ы 0xDB 219
&nbsp;&nbsp; { 0x00, 0x7F, 0x48, 0x48, 0x30 },&nbsp;&nbsp; // Ь 0xDC 220
&nbsp;&nbsp; { 0x22, 0x41, 0x49, 0x49, 0x3E },&nbsp;&nbsp; // Э 0xDD 221
&nbsp;&nbsp; { 0x7F, 0x08, 0x3E, 0x41, 0x3E },&nbsp;&nbsp; // Ю 0xDE 222
&nbsp;&nbsp; { 0x46, 0x29, 0x19, 0x09, 0x7F },&nbsp;&nbsp; // Я 0xDF 223
&nbsp;&nbsp; { 0x20, 0x54, 0x54, 0x54, 0x78 },&nbsp;&nbsp; // а 0xE0 224
&nbsp;&nbsp; { 0x3C, 0x4A, 0x4A, 0x4A, 0x31 },&nbsp;&nbsp; // б 0xE1 225
&nbsp;&nbsp; { 0x7C, 0x54, 0x54, 0x28, 0x00 },&nbsp;&nbsp; // в 0xE2 226
&nbsp;&nbsp; { 0x7C, 0x04, 0x04, 0x0C, 0x00 },&nbsp;&nbsp; // г 0xE3 227
&nbsp;&nbsp; { 0x60, 0x3C, 0x24, 0x3C, 0x60 },&nbsp;&nbsp; // д 0xE4 228
&nbsp;&nbsp; { 0x38, 0x54, 0x54, 0x54, 0x18 },&nbsp;&nbsp; // е 0xE5 229
&nbsp;&nbsp; { 0x6C, 0x10, 0x7C, 0x10, 0x6C },&nbsp;&nbsp; // ж 0xE6 230
&nbsp;&nbsp; { 0x00, 0x44, 0x54, 0x54, 0x28 },&nbsp;&nbsp; // з 0xE7 231
&nbsp;&nbsp; { 0x7C, 0x20, 0x10, 0x08, 0x7C },&nbsp;&nbsp; // и 0xE8 232
&nbsp;&nbsp; { 0x7C, 0x21, 0x12, 0x09, 0x7C },&nbsp;&nbsp; // й 0xE9 233
&nbsp;&nbsp; { 0x7C, 0x10, 0x28, 0x44, 0x00 },&nbsp;&nbsp; // к 0xEA 234
&nbsp;&nbsp; { 0x40, 0x38, 0x04, 0x04, 0x7C },&nbsp;&nbsp; // л 0xEB 235
&nbsp;&nbsp; { 0x7C, 0x08, 0x10, 0x08, 0x7C },&nbsp;&nbsp; // м 0xEC 236
&nbsp;&nbsp; { 0x7C, 0x10, 0x10, 0x10, 0x7C },&nbsp;&nbsp; // н 0xED 237
&nbsp;&nbsp; { 0x38, 0x44, 0x44, 0x44, 0x38 },&nbsp;&nbsp; // о 0xEE 238
&nbsp;&nbsp; { 0x7C, 0x04, 0x04, 0x04, 0x7C },&nbsp;&nbsp; // п 0xEF 239
&nbsp;&nbsp; { 0x7C, 0x14, 0x14, 0x14, 0x08 },&nbsp;&nbsp; // р 0xF0 240
&nbsp;&nbsp; { 0x38, 0x44, 0x44, 0x44, 0x00 },&nbsp;&nbsp; // с 0xF1 241
&nbsp;&nbsp; { 0x04, 0x04, 0x7C, 0x04, 0x04 },&nbsp;&nbsp; // т 0xF2 242
&nbsp;&nbsp; { 0x0C, 0x50, 0x50, 0x50, 0x3C },&nbsp;&nbsp; // у 0xF3 243
&nbsp;&nbsp; { 0x08, 0x14, 0x7C, 0x14, 0x08 },&nbsp;&nbsp; // ф 0xF4 244
&nbsp;&nbsp; { 0x44, 0x28, 0x10, 0x28, 0x44 },&nbsp;&nbsp; // х 0xF5 245
&nbsp;&nbsp; { 0x3C, 0x20, 0x20, 0x3C, 0x60 },&nbsp;&nbsp; // ц 0xF6 246
&nbsp;&nbsp; { 0x0C, 0x10, 0x10, 0x10, 0x7C },&nbsp;&nbsp; // ч 0xF7 247
&nbsp;&nbsp; { 0x7C, 0x40, 0x7C, 0x40, 0x7C },&nbsp;&nbsp; // ш 0xF8 248
&nbsp;&nbsp; { 0x3C, 0x20, 0x3C, 0x20, 0x7C },&nbsp;&nbsp; // щ 0xF9 249
&nbsp;&nbsp; { 0x04, 0x7C, 0x50, 0x50, 0x20 },&nbsp;&nbsp; // ъ 0xFA 250
&nbsp;&nbsp; { 0x7C, 0x50, 0x20, 0x00, 0x7C },&nbsp;&nbsp; // ы 0xFB 251
&nbsp;&nbsp; { 0x00, 0x7C, 0x50, 0x50, 0x20 },&nbsp;&nbsp; // ь 0xFC 252
&nbsp;&nbsp; { 0x28, 0x44, 0x54, 0x54, 0x38 },&nbsp;&nbsp; // э 0xFD 253
&nbsp;&nbsp; { 0x7C, 0x10, 0x38, 0x44, 0x38 },&nbsp;&nbsp; // ю 0xFE 254
&nbsp;&nbsp; { 0x48, 0x54, 0x34, 0x14, 0x7C }&nbsp;&nbsp;&nbsp; // я 0xFF 255
};

void LcdCharacter(unsigned char ch)
{
&nbsp; //LcdWrite(LCD_D, 0x00);
&nbsp; Serial.println();
&nbsp;&nbsp; Serial.println(ch);
&nbsp;&nbsp; Serial.println(ch,HEX);
&nbsp;&nbsp; Serial.println();
&nbsp;&nbsp;&nbsp; if ( (ch >= 0xD0) && (ch <= 0xD1) )
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbit=ch;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial.println("Set dubble byte");
&nbsp;&nbsp;&nbsp; } else LcdWrite(LCD_D, 0x00);
&nbsp;&nbsp; 
&nbsp; for (int index = 0; index < 5; index++)
&nbsp; {
&nbsp;&nbsp;&nbsp; if ( (ch >= 0x0020) && (ch <= 0x007F) )
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Смещение в таблице для символов ASCII[0x20-0x7F]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ch -= 32;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdWrite(LCD_D, ASCII[ch-0x20][index]);
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; /*
&nbsp;&nbsp;&nbsp; else if ( (ch >= 0xC0) && (ch <= 0xFF) )
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Смещение в таблице для символов CP1251[0xC0-0xFF]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ch -= 96;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //LcdWrite(LCD_D, ASCII[ch-0xC0+0x60][index]);
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; */
&nbsp;&nbsp;&nbsp; else if ( ((ch >= 0x90) && (ch <= 0xBF)) ||((ch >= 0x80) && (ch <= 0x8F)) )
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Смещение в таблице для символов UTF[0xFF90-0xFF8F]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ch -= 96;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dbit == 0xD0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdWrite(LCD_D, ASCII[ch-0x90+0x60][index]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(dbit==0xD1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdWrite(LCD_D, ASCII[ch-0x90+0x60+0x40][index]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Serial.println("UTF");
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; else if ( (ch >= 0x0410) && (ch <= 0x044F) )
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Смещение в таблице для символов Unicode?[0x0410-0x044F]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ch -= 96;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //LcdWrite(LCD_D, ASCII[ch-0x0410+0x60][index]);
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!dbit)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Остальные игнорируем (их просто нет в таблице для экономии памяти)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch = 95;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdWrite(LCD_D, ASCII[ch-0x20][index]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; //LcdWrite(LCD_D, ASCII[character - 0x20][index]);
&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp; }
&nbsp;// LcdWrite(LCD_D, 0x00);
}

на некоторые вещи не смотрите  , закоменченно т.к  проверял многое =)   , практически методом научного тыка ,  В С++  не силён  как и только  начал осваивать микроконтролерную жизнь , занятся С решил из-за знания php   а они похожи.

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

AVik
Offline
Зарегистрирован: 27.01.2013

 

Решилось использованием другой библиотеки.

Ссылка на статью: http://code.google.com/p/pcd8544/

Библиотека: http://pcd8544.googlecode.com/files/PCD8544-1.4.zip

Код программы:

/*
 * To use this sketch, connect the eight pins from your LCD like thus:
 *
 * Pin 1 -> +3.3V (rightmost, when facing the display head-on)
 * Pin 2 -> Arduino digital pin 3
 * Pin 3 -> Arduino digital pin 4
 * Pin 4 -> Arduino digital pin 5
 * Pin 5 -> Arduino digital pin 7
 * Pin 6 -> Ground
 * Pin 7 -> 10uF capacitor -> Ground
 * Pin 8 -> Arduino digital pin 6
 *
 * Since these LCDs are +3.3V devices, you have to add extra components to
 * connect it to the digital pins of the Arduino (not necessary if you are
 * using a 3.3V variant of the Arduino, such as Sparkfun's Arduino Pro).
 */

#include <PCD8544.h>

//--> DHT22
#include "DHT.h"
#define DHTPIN 2 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE);
//--

static PCD8544 lcd;

void setup() {
  // PCD8544-compatible displays may have a different resolution...
  lcd.begin(84, 48);
  
  //DHT22
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
  dht.begin();
  //--
}

void loop() {
  //DHT22  
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
    delay(150);
  }
  //---
  lcd.setCursor(0, 0);
  lcd.print("---- TEST ----");
  lcd.setCursor(18, 2);
  lcd.print("T:");  
  lcd.setCursor(32, 2);
  lcd.print(t);
  lcd.setCursor(18, 4);
  lcd.print("H:"); 
  lcd.setCursor(32, 4);
  lcd.print(h);
  delay(500);  
}

 

paguo
Offline
Зарегистрирован: 13.03.2013

Здравствуйте. Я начинающий праграммист AVR контроллеров. Сейчас хочу сделать примерно такой-же как у вас датчик температуры и влажности с использованием сенсора DHT22, в дальнейшем хочу сделать регулирование влажности и температуры, делаю всё это для погреба. Вот ищу уже целый день в интернете рабочий пример кода, тут наткнулся на ваш. Я только начинаю работать на языке "C". Не могли бы вы сказать, чем вы компилировали ваш код, в какой программе. Сам начал изучать CodeVisionAVR и на нём успешно сделал терморегулятор на DS18B20, ну это так к слову. И скажите еще пожалуйста где вы нашли эту библиотеку DHT.h для DHT22. Если можете скинте свой рабочий проект со всеми необходимыми библиотеками мне на email (smirnov88@inbox.ru). Заранее благодарен!

maksim
Offline
Зарегистрирован: 12.02.2012
igormwd
Offline
Зарегистрирован: 22.03.2013

Vano™ пишет:
Может совместными усилиями  создадим нормальную библиотеку (драйвер)  к  подобным дисплеям  с пониманием  русского языка , а может  у кого есть еще заначки  разных шрифтов и символов.

дак есть один парень который уже все сделал - разработал супер пупер программу, ты можешь сам рисовать свои иероглифы - http://ikarab.narod.ru/KS0108.html

для теста можешь импортировать строку какого то символа - сразу все пойиешь как делается

чуть ли не забыл, в самом низу страницы последняя версия программы, ее и качай. Программу тестировал га своем 5110, у меня все получилось

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

AVik пишет:

 

Решилось использованием другой библиотеки.

Ссылка на статью: http://code.google.com/p/pcd8544/

Библиотека: http://pcd8544.googlecode.com/files/PCD8544-1.4.zip

Код программы:

/*
 * To use this sketch, connect the eight pins from your LCD like thus:
 *
 * Pin 1 -> +3.3V (rightmost, when facing the display head-on)
 * Pin 2 -> Arduino digital pin 3
 * Pin 3 -> Arduino digital pin 4
 * Pin 4 -> Arduino digital pin 5
 * Pin 5 -> Arduino digital pin 7
 * Pin 6 -> Ground
 * Pin 7 -> 10uF capacitor -> Ground
 * Pin 8 -> Arduino digital pin 6
 *
 * Since these LCDs are +3.3V devices, you have to add extra components to
 * connect it to the digital pins of the Arduino (not necessary if you are
 * using a 3.3V variant of the Arduino, such as Sparkfun's Arduino Pro).
 */

#include <PCD8544.h>

//--> DHT22
#include "DHT.h"
#define DHTPIN 2 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE);
//--

static PCD8544 lcd;

void setup() {
  // PCD8544-compatible displays may have a different resolution...
  lcd.begin(84, 48);
  
  //DHT22
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
  dht.begin();
  //--
}

void loop() {
  //DHT22  
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
    delay(150);
  }
  //---
  lcd.setCursor(0, 0);
  lcd.print("---- TEST ----");
  lcd.setCursor(18, 2);
  lcd.print("T:");  
  lcd.setCursor(32, 2);
  lcd.print(t);
  lcd.setCursor(18, 4);
  lcd.print("H:"); 
  lcd.setCursor(32, 4);
  lcd.print(h);
  delay(500);  
}

 

Добрый день! Попробовал скомпилить Ваш скетч - ругается на 24 строку. Что я делаю не так? Пока только пробую разбираться что к чему...

leshak
Offline
Зарегистрирован: 29.09.2011

vvg10 пишет:

Добрый день! Попробовал скомпилить Ваш скетч - ругается на 24 строку. Что я делаю не так? 

Как минимум то что не говорите какая именно ошибка. На "ругается,что не так?" наиболее правильным ответо "что-то".

Только - гадать. Скорее всего - библиотеку не поставили (или криво/не туда).

maksim
Offline
Зарегистрирован: 12.02.2012

Не импортировали библиотеку.

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Пишет : "DHT is not a type"  Библиотека лежит в папке Librarys

maksim
Offline
Зарегистрирован: 12.02.2012

А как вы ее туда положили? Фаил.zip распаковали? А случайно в папке PCD8544-1.4 не лежит еще папка PCD8544-1.4 ? И на всякий переименуйте папку в PCD8544.

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

В папке Librarys лежит папка DHT, в которой лежат файлы dht.cpp и dht.h  C PCD8544 все в порядке.

А не может это быть связано с версией Arduino IDE( у меня 1.0.2)? Просто сталкивался с таким с CVAVR.

maksim
Offline
Зарегистрирован: 12.02.2012

Если вы скачали библиотеку та что выше по ссылке, то там файлы DHT22.h/.cpp, а не dht.h/.cpp, следовательно и подключать нужно #include "DHT22.h", да и методы там маленько другие.

#include <PCD8544.h>

//--> DHT22
#include "DHT22.h"
#define DHTPIN 2 
DHT22 dht(DHTPIN);
//--

static PCD8544 lcd;

void setup() {
  // PCD8544-compatible displays may have a different resolution...
  lcd.begin(84, 48);
  
  //DHT22
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
  //--
}

void loop() {
  //DHT22  
  float h = dht.getHumidity();
  float t = dht.getTemperatureC();
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
    delay(150);
  }
  //---
  lcd.setCursor(0, 0);
  lcd.print("---- TEST ----");
  lcd.setCursor(18, 2);
  lcd.print("T:");  
  lcd.setCursor(32, 2);
  lcd.print(t);
  lcd.setCursor(18, 4);
  lcd.print("H:"); 
  lcd.setCursor(32, 4);
  lcd.print(h);
  delay(500);  
}

 

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Я их переименовывал в dht и пробовал другую библиотеку - результат один

maksim
Offline
Зарегистрирован: 12.02.2012

vvg10 пишет:

Я их переименовывал в dht и пробовал другую библиотеку - результат один

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

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Заметил в Вашем коде нет строки dht.begin();-  не нужна?

maksim
Offline
Зарегистрирован: 12.02.2012

В этой библиотеке в классе DHT22 ее нет, значит не нужна.

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Спасибо большое! Вечером буду пробовать!

vvg10
vvg10 аватар
Offline
Зарегистрирован: 18.04.2013

Проверил - получилось! Скомпилировалось, залилось, показывает, но не меряет. Выдает -99.50 в обоих каналах. В связи с этим вопрос:

вход датчика указывается только в #define DHTPIN 2, или еще где нибудь? Можно ли как-то проверить работоспособность датчика?

Попробовал скетч из примера в библиотеке DHT22 - датчик работает. Что делать, не соображу никак...

Vladikas
Offline
Зарегистрирован: 25.07.2013

Подскажите как допилить библиотеку отсюда http://code.google.com/p/pcd8544/ чтоб выводила кириллицу. Дополнить таблицу символов кириллицой оказалось недостаточно. В этом си-образном языке только начинаю разбираться, путаюсь.

Вот файл charset.cpp с кириллицей:



/*
 * PCD8544 - Interface with Philips PCD8544 (or compatible) LCDs.
 *
 * Copyright (c) 2010 Carlos Rodrigues <cefrodrigues@gmail.com>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */


#include <avr/pgmspace.h>


// The 7-bit ASCII character set...
const PROGMEM unsigned char charset[][5] = {
   { 0x00, 0x00, 0x00, 0x00, 0x00 },   //   0x20  32
   { 0x00, 0x00, 0x5F, 0x00, 0x00 },   // ! 0x21  33
   { 0x00, 0x07, 0x00, 0x07, 0x00 },   // " 0x22  34
   { 0x14, 0x7F, 0x14, 0x7F, 0x14 },   // # 0x23  35
   { 0x24, 0x2A, 0x7F, 0x2A, 0x12 },   // $ 0x24  36
   { 0x4C, 0x2C, 0x10, 0x68, 0x64 },   // % 0x25  37
   { 0x36, 0x49, 0x55, 0x22, 0x50 },   // & 0x26  38
   { 0x00, 0x05, 0x03, 0x00, 0x00 },   // ' 0x27  39
   { 0x00, 0x1C, 0x22, 0x41, 0x00 },   // ( 0x28  40
   { 0x00, 0x41, 0x22, 0x1C, 0x00 },   // ) 0x29  41
   { 0x14, 0x08, 0x3E, 0x08, 0x14 },   // * 0x2A  42
   { 0x08, 0x08, 0x3E, 0x08, 0x08 },   // + 0x2B  43
   { 0x00, 0x00, 0x50, 0x30, 0x00 },   // , 0x2C  44
   { 0x10, 0x10, 0x10, 0x10, 0x10 },   // - 0x2D  45
   { 0x00, 0x60, 0x60, 0x00, 0x00 },   // . 0x2E  46
   { 0x20, 0x10, 0x08, 0x04, 0x02 },   // / 0x2F  47
   { 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0 0x30  48
   { 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1 0x31  49
   { 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2 0x32  50
   { 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3 0x33  51
   { 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4 0x34  52
   { 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5 0x35  53
   { 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6 0x36  54
   { 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7 0x37  55
   { 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8 0x38  56
   { 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9 0x39  57
   { 0x00, 0x36, 0x36, 0x00, 0x00 },   // : 0x3A  58
   { 0x00, 0x56, 0x36, 0x00, 0x00 },   // ; 0x3B  59
   { 0x08, 0x14, 0x22, 0x41, 0x00 },   // < 0x3C  60
   { 0x14, 0x14, 0x14, 0x14, 0x14 },   // = 0x3D  61
   { 0x00, 0x41, 0x22, 0x14, 0x08 },   // > 0x3E  62
   { 0x02, 0x01, 0x51, 0x09, 0x06 },   // ? 0x3F  63
   { 0x32, 0x49, 0x79, 0x41, 0x3E },   // @ 0x40  64
   { 0x7E, 0x11, 0x11, 0x11, 0x7E },   // A 0x41  65
   { 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B 0x42  66
   { 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C 0x43  67
   { 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D 0x44  68
   { 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E 0x45  69
   { 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F 0x46  70
   { 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G 0x47  71
   { 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H 0x48  72
   { 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I 0x49  73
   { 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J 0x4A  74
   { 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K 0x4B  75
   { 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L 0x4C  76
   { 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M 0x4D  77
   { 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N 0x4E  78
   { 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O 0x4F  79
   { 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P 0x50  80
   { 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q 0x51  81
   { 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R 0x52  82
   { 0x46, 0x49, 0x49, 0x49, 0x31 },   // S 0x53  83
   { 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T 0x54  84
   { 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U 0x55  85
   { 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V 0x56  86
   { 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W 0x57  87
   { 0x63, 0x14, 0x08, 0x14, 0x63 },   // X 0x58  88
   { 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y 0x59  89
   { 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z 0x5A  90
   { 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [ 0x5B  91
   { 0x02, 0x04, 0x08, 0x10, 0x20 },   // \ 0x5C  92
   { 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ] 0x5D  93
   { 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^ 0x5E  94
   { 0x40, 0x40, 0x40, 0x40, 0x40 },   // _ 0x5F  95
   { 0x00, 0x01, 0x02, 0x04, 0x00 },   // ` 0x60  96
   { 0x20, 0x54, 0x54, 0x54, 0x78 },   // a 0x61  97
   { 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b 0x62  98
   { 0x38, 0x44, 0x44, 0x44, 0x20 },   // c 0x63  99
   { 0x38, 0x44, 0x44, 0x48, 0x7F },   // d 0x64 100
   { 0x38, 0x54, 0x54, 0x54, 0x18 },   // e 0x65 101
   { 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f 0x66 102
   { 0x0C, 0x52, 0x52, 0x52, 0x3E },   // g 0x67 103
   { 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h 0x68 104
   { 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i 0x69 105
   { 0x20, 0x40, 0x44, 0x3D, 0x00 },   // j 0x6A 106
   { 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k 0x6B 107
   { 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l 0x6C 108
   { 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m 0x6D 109
   { 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n 0x6E 110
   { 0x38, 0x44, 0x44, 0x44, 0x38 },   // o 0x6F 111
   { 0x7C, 0x14, 0x14, 0x14, 0x08 },   // p 0x70 112
   { 0x08, 0x14, 0x14, 0x18, 0x7C },   // q 0x71 113
   { 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r 0x72 114
   { 0x48, 0x54, 0x54, 0x54, 0x20 },   // s 0x73 115
   { 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t 0x74 116
   { 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u 0x75 117
   { 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v 0x76 118
   { 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w 0x77 119
   { 0x44, 0x28, 0x10, 0x28, 0x44 },   // x 0x78 120
   { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // y 0x79 121
   { 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z 0x7A 122
   { 0x00, 0x08, 0x36, 0x41, 0x00 },   // { 0x7B 123
   { 0x00, 0x00, 0x7F, 0x00, 0x00 },   // | 0x7C 124
   { 0x00, 0x41, 0x36, 0x08, 0x00 },   // } 0x7D 125
   { 0x08, 0x04, 0x08, 0x10, 0x08 },   // ~ 0x7E 126
   { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },   //  0x7F 127

   { 0x7C, 0x12, 0x11, 0x12, 0x7C },   // А 0xC0 192
   { 0x7F, 0x49, 0x49, 0x49, 0x31 },   // Б 0xC1 193
   { 0x7F, 0x49, 0x49, 0x49, 0x36 },   // В 0xC2 194
   { 0x7F, 0x01, 0x01, 0x01, 0x01 },   // Г 0xC3 195
   { 0x60, 0x3F, 0x21, 0x3F, 0x60 },   // Д 0xC4 196
   { 0x7F, 0x49, 0x49, 0x49, 0x41 },   // Е 0xC5 197
   { 0x77, 0x08, 0x7F, 0x08, 0x77 },   // Ж 0xC6 198
   { 0x22, 0x41, 0x49, 0x49, 0x36 },   // З 0xC7 199
   { 0x7F, 0x10, 0x08, 0x04, 0x7F },   // И 0xC8 200
   { 0x7E, 0x10, 0x09, 0x04, 0x7E },   // Й 0xC9 201
   { 0x7F, 0x08, 0x14, 0x22, 0x41 },   // К 0xCA 202
   { 0x40, 0x3E, 0x01, 0x01, 0x7F },   // Л 0xCB 203
   { 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // М 0xCC 204
   { 0x7F, 0x08, 0x08, 0x08, 0x7F },   // Н 0xCD 205
   { 0x3E, 0x41, 0x41, 0x41, 0x3E },   // О 0xCE 206
   { 0x7F, 0x01, 0x01, 0x01, 0x7F },   // П 0xCF 207
   { 0x7F, 0x09, 0x09, 0x09, 0x06 },   // Р 0xD0 208
   { 0x3E, 0x41, 0x41, 0x41, 0x22 },   // С 0xD1 209
   { 0x01, 0x01, 0x7F, 0x01, 0x01 },   // Т 0xD2 210
   { 0x07, 0x48, 0x48, 0x48, 0x3F },   // У 0xD3 211
   { 0x0E, 0x11, 0x7F, 0x11, 0x0E },   // Ф 0xD4 212
   { 0x63, 0x14, 0x08, 0x14, 0x63 },   // Х 0xD5 213
   { 0x3F, 0x20, 0x20, 0x3F, 0x60 },   // Ц 0xD6 214
   { 0x07, 0x08, 0x08, 0x08, 0x7F },   // Ч 0xD7 215
   { 0x7F, 0x40, 0x7E, 0x40, 0x7F },   // Ш 0xD8 216
   { 0x3F, 0x20, 0x3F, 0x20, 0x7F },   // Щ 0xD9 217
   { 0x01, 0x7F, 0x48, 0x48, 0x30 },   // Ъ 0xDA 218
   { 0x7F, 0x48, 0x30, 0x00, 0x7F },   // Ы 0xDB 219
   { 0x00, 0x7F, 0x48, 0x48, 0x30 },   // Ь 0xDC 220
   { 0x22, 0x41, 0x49, 0x49, 0x3E },   // Э 0xDD 221
   { 0x7F, 0x08, 0x3E, 0x41, 0x3E },   // Ю 0xDE 222
   { 0x46, 0x29, 0x19, 0x09, 0x7F },   // Я 0xDF 223
   { 0x20, 0x54, 0x54, 0x54, 0x78 },   // а 0xE0 224
   { 0x3C, 0x4A, 0x4A, 0x4A, 0x31 },   // б 0xE1 225
   { 0x7C, 0x54, 0x54, 0x28, 0x00 },   // в 0xE2 226
   { 0x7C, 0x04, 0x04, 0x0C, 0x00 },   // г 0xE3 227
   { 0x60, 0x3C, 0x24, 0x3C, 0x60 },   // д 0xE4 228
   { 0x38, 0x54, 0x54, 0x54, 0x18 },   // е 0xE5 229
   { 0x6C, 0x10, 0x7C, 0x10, 0x6C },   // ж 0xE6 230
   { 0x00, 0x44, 0x54, 0x54, 0x28 },   // з 0xE7 231
   { 0x7C, 0x20, 0x10, 0x08, 0x7C },   // и 0xE8 232
   { 0x7C, 0x21, 0x12, 0x09, 0x7C },   // й 0xE9 233
   { 0x7C, 0x10, 0x28, 0x44, 0x00 },   // к 0xEA 234
   { 0x40, 0x38, 0x04, 0x04, 0x7C },   // л 0xEB 235
   { 0x7C, 0x08, 0x10, 0x08, 0x7C },   // м 0xEC 236
   { 0x7C, 0x10, 0x10, 0x10, 0x7C },   // н 0xED 237
   { 0x38, 0x44, 0x44, 0x44, 0x38 },   // о 0xEE 238
   { 0x7C, 0x04, 0x04, 0x04, 0x7C },   // п 0xEF 239
   { 0x7C, 0x14, 0x14, 0x14, 0x08 },   // р 0xF0 240
   { 0x38, 0x44, 0x44, 0x44, 0x00 },   // с 0xF1 241
   { 0x04, 0x04, 0x7C, 0x04, 0x04 },   // т 0xF2 242
   { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // у 0xF3 243
   { 0x08, 0x14, 0x7C, 0x14, 0x08 },   // ф 0xF4 244
   { 0x44, 0x28, 0x10, 0x28, 0x44 },   // х 0xF5 245
   { 0x3C, 0x20, 0x20, 0x3C, 0x60 },   // ц 0xF6 246
   { 0x0C, 0x10, 0x10, 0x10, 0x7C },   // ч 0xF7 247
   { 0x7C, 0x40, 0x7C, 0x40, 0x7C },   // ш 0xF8 248
   { 0x3C, 0x20, 0x3C, 0x20, 0x7C },   // щ 0xF9 249
   { 0x04, 0x7C, 0x50, 0x50, 0x20 },   // ъ 0xFA 250
   { 0x7C, 0x50, 0x20, 0x00, 0x7C },   // ы 0xFB 251
   { 0x00, 0x7C, 0x50, 0x50, 0x20 },   // ь 0xFC 252
   { 0x28, 0x44, 0x54, 0x54, 0x38 },   // э 0xFD 253
   { 0x7C, 0x10, 0x38, 0x44, 0x38 },   // ю 0xFE 254
   { 0x48, 0x54, 0x34, 0x14, 0x7C }    // я 0xFF 255
};


/* vim: set expandtab ts=4 sw=4: */ 

 

 

xorkrus
Offline
Зарегистрирован: 22.09.2013

maksim пишет:

Если вы скачали библиотеку та что выше по ссылке, то там файлы DHT22.h/.cpp, а не dht.h/.cpp, следовательно и подключать нужно #include "DHT22.h", да и методы там маленько другие.

#include <PCD8544.h>

//--> DHT22
#include "DHT22.h"
#define DHTPIN 2 
DHT22 dht(DHTPIN);
//--

static PCD8544 lcd;

void setup() {
  // PCD8544-compatible displays may have a different resolution...
  lcd.begin(84, 48);
  
  //DHT22
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
  //--
}

void loop() {
  //DHT22  
  float h = dht.getHumidity();
  float t = dht.getTemperatureC();
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
    delay(150);
  }
  //---
  lcd.setCursor(0, 0);
  lcd.print("---- TEST ----");
  lcd.setCursor(18, 2);
  lcd.print("T:");  
  lcd.setCursor(32, 2);
  lcd.print(t);
  lcd.setCursor(18, 4);
  lcd.print("H:"); 
  lcd.setCursor(32, 4);
  lcd.print(h);
  delay(500);  
}

 

С этим кодом, на дисплее "-99.50" влажность и температура при использовании DHT11 и DHT22. Почему так?

Endymion
Offline
Зарегистрирован: 07.02.2016

Друзья, у меня тоже проблема с датчиком DHT22 . 
И температуру и влажность выводит на дисплей LCM1602 как -99,50 .

Датчик уже с платой, на которой SMD конденсатор 512 (5100 Ом же?) и конденсатор, судя по окраске.

По совету странной статьи пробовал через дополнительный на 500 Ом подключить в разрез Vcc, но картина не меняется.

Может библиотека какая-то другая нужна? Или датчик в мусорку? Напрягает именно тот факт даже.. что нет температуры? -99,50

 

Собственно вопрос:
Вы решили проблему? Как? Заранее буду вам благодарен!

Endymion
Offline
Зарегистрирован: 07.02.2016

Одно уже понял , что -99,50 показывает если даже ко входу датчик не подключен. Другими словами с датчика не приходят данные.

Может SMD конденсатор мертв? Зачем он вообще там, как фильтр питания? Есть смысл выпаять его и зашунтировать? И вообще выпаять с китайской платы датчик и впаять через 10кОм резистор в свою?

Поправка, китайский SMD с надписью 512 мультиметром показывает 2.36кОМ

Endymion
Offline
Зарегистрирован: 07.02.2016

Все, глубокой ночью разобрался в неправильном применении функций объявленной библиотеке DHT.h

 

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

 

 

Все супер, идем дальше )

kserj
Offline
Зарегистрирован: 27.01.2016

Всем добрый день.

Кто сталкивался с такой проблемой!!!

Экран TFT LCD 1.44'' 128x128 V2.1, библиотека Adafruit_GFX, драйвер TFT_ILI9163C. Тип МК Arduino Uno R3. Тактовая частота МК 16Мг.

Чтобы обновить показания канала АЦП  на экране , нужно сначало  стереть старое число , а потом записать новое на его место. Так вот происходить мерцание выводимых символов.  Не пойму в чем дело. Догадываюсь , что не тянет сам TFT ?.