Паяльник

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Паяльник » Микроконтроллеры » Бегущая строка из N-Led матриц 8x8 на MAX7219 температура и влажность


Бегущая строка из N-Led матриц 8x8 на MAX7219 температура и влажность

Сообщений 1 страница 30 из 97

1

Бегущая строка из 2-х Led матриц 8x8 на драйвере MAX7219 и контроллере Arduino Uno показывает температуру и влажность с датчика DHT-11

Возможно увеличение количества матриц

Используется библиотека MaxMatrix.h  http://code.google.com/p/arudino-maxmatrix-library/

http://sh.uploads.ru/t/sxELf.jpg

Пример работы устройства

https://youtu.be/fls6p1paopU

0

2

Приветик форум. давненько здесь не был. Очень понравилась идея сделать бегущую строку. Только вот я не очень разбираюсь с программированием. у меня возник вопрос как вставить число в строку, в примере на библиотеку MaxMatrix.h приведена работа только со строками.
Вот тут кое какие попытки реализовать замысел:

Код:
#include "DHT.h"
#include <MaxMatrix.h>
#include <avr/pgmspace.h>

#define DHTPIN 2     // DHT 11 out
#define DHTTYPE DHT11   // type DHT 11
DHT dht(DHTPIN, DHTTYPE); 

....

void loop(){
  int h = dht.readHumidity();
  int t = dht.readTemperature();
  char strLab[] = " TEMPERATURE "; // первая часть строки
  dtostrf(t,1,0,&strLab[24]);     // добавляем в конец строки число
  char strLab2[] = "~C HUMIDITY   "; // вторая часть строки
  dtostrf(h,1,0,&strLab2[13]);  // добавляем в конец строки число
  char strLab3[] = "%    \0";   // третья часть строки
  strcat(strLab,strLab2);       // слияние стоки 1 и 2 в 1
  strcat(strLab,strLab3);     // слияние строки 1 и 3

....

printStringWithShift(strLab, 100);

Вот не пойму почему моя строка проходит только один раз, а потом зависает. и тишина  :dontknow:

0

3

Lastik
Дам подсказку. Почитай про функцию sprintf

0

4

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

http://sh.uploads.ru/t/xZsI7.jpg

Пример работы

https://youtu.be/Wma8XpENM-8

0

5

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

0

6

Вот исходник с модулем часов RTC

Код:
/*
################################################################################
# File Name:             MAX7219_5.ino                                             
# Board:                 Arduino UNO         
# Programming Language:	 Wiring / C /Processing /Fritzing / Arduino IDE          
#            
# Objective:             Scrolling LED dot Matrix
#                      
# Operation:	         Scrolls a message over a 16x8 LED dot matrix
#    	
# Author:                Marcelo Moraes 
# Date:                  July 9th, 2013	
# Place:                 Sorocaba - SP - Brazil	
#        	
################################################################################
 
 This code is a public example.
 */

//******************************************************************************
// visit this web page for further information about MaxMatrix library
// https://code.google.com/p/arudino-maxmatrix-library/
//******************************************************************************
// Шапку из оригинала исходника сохранил, остальное будут переделки

#include "DHT.h"
#include <MaxMatrix.h>
#include <avr/pgmspace.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

#define DHTPIN 2     // DHT-11 out
#define DHTTYPE DHT11   // тип DHT-11
DHT dht(DHTPIN, DHTTYPE);

PROGMEM prog_uchar CH[] = {
  3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
  1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
  3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
  5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
  4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
  5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
  5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
  1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
  3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
  3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
  5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
  5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
  2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
  4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
  2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
  4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
  3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
  4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
  4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
  4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
  4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
  4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
  4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
  4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
  4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
  2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
  2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
  3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
  3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
  3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
  4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
  5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
  4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
  4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
  4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
  5, 8, B01100000, B00111111, B00100001, B00111111, B01100000, // Д    
  4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
  4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
  4, 8, B01111111, B00000001, B00000001, B00000001, B00000000, // Г    
  4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
  5, 8, B01111111, B00010000, B00001000, B00000100, B01111111, // И    
  5, 8, B01100011, B00010100, B01111111, B00010100, B01100011, // Ж    
  4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
  4, 8, B01111110, B00000001, B00000001, B01111111, B00000000, // Л    
  5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
  5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
  4, 8, B01111111, B00000001, B00000001, B01111111, B00000000, // П    
  4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
  4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P    
  4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
  5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
  4, 8, B01000111, B01001000, B01001000, B00111111, B00000000, // У    
  4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B    
  5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
  5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
  5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
  4, 8, B01000110, B00101001, B00011001, B01111111, B00000000, // Я    
  2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
  4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
  2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
  3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
  4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
  2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
  4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
  4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
  4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
  4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
  4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
  3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
  4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
  4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
  3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
  4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
  4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
  3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
  5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
  4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
  4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
  4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
  4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
  4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
  4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
  3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
  4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
  5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
  5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
  5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
  4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
  3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
  3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
  1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
  3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
  4, 8, B00000010, B00000101, B00000010, B00000000, B00000000, // ~ градус
};

int data = 11;    // DIN pin of MAX7219 module
int load = 10;    // CS pin of MAX7219 module
int clock = 13;  // CLK pin of MAX7219 module

int maxInUse = 2;    //change this variable to set how many MAX7219's you'll use (5)

MaxMatrix m(data, load, clock, maxInUse); // define module

byte buffer[10];

void setup(){
  m.init(); // module initialize
  m.setIntensity(0); // dot matix intensity 0-15
  Serial.begin(9600); // serial communication initialize

  Wire.begin();  // RTC_DS1307
  RTC.begin();

  dht.begin(); // DHT-11
}

void loop(){

  int Temp = dht.readTemperature();
  int Hum = dht.readHumidity();

  DateTime now = RTC.now();
  int TDay=now.day();
  int TMonth=now.month();
  int TYear=now.year();
  int THour=now.hour();
  int TMinutes=now.minute();

  delay(100);
  m.shiftLeft(false, true);

  char string1[] = " Hello, my name is Vadim ...        ";
  sprintf(string1, "CEGODHZ %02d.%02d.%02d B %02d.%02d TEMPERATURA VO3DUXA %d~C VLAJHOCTb %i%%     ", TDay, TMonth, TYear, THour, TMinutes, Temp, Hum);
  Serial.println(string1);

  printStringWithShift(string1, 100);

}

void printCharWithShift(char c, int shift_speed){
  if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(maxInUse*8, 0, buffer);
  m.setColumn(maxInUse*8 + buffer[0], 0);

  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
  }
}

0

7

Вот спасибо большое, а то я уже сломал всю голову, теперь все как надо работает. Вот только у меня возник один вопрос по русскому языку, в тексте абракадабра, как она превращается в нормальный текст ?

0

8

Lastik написал(а):

Вот спасибо большое, а то я уже сломал всю голову, теперь все как надо работает. Вот только у меня возник один вопрос по русскому языку, в тексте абракадабра, как она превращается в нормальный текст ?

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

Символ рисуется так:

// Пример описание матрицы символа A размером в высоту 8, в ширину 4.
// prog_uchar CH[] = { 4, 8, B11111110, B00010001, B00010001, B11111110,
// т.е. символ рисуется как бы "лежа" на правом боку

11111110
00010001
00010001
11111110

Матрицы символов CEGODHZ в моем примере, выглядят как "СЕГОДНЯ", т.е. заменил матрицу символов G, D, Z

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

0

9

Привет
а почему один раз строка пробегает и стоп?

0

10

valex написал(а):

Привет
а почему один раз строка пробегает и стоп?

Доброе время суток.

А вы скетч отсюда брали ? Изменяли ? Какая версия software и hardware? Сколько у Вас модулей матриц подключено ? Фото подключений. Отправьте мне свой скетч я посмотрю что у вас там. Файлообменник к примеру http://f-bit.ru/

0

11

Извиняюсь!
Работает.
Останавливалась оттого что часы не прикрутил и Dht. Сейчас крутится как положено
Вот только с часами что то криво . После отключения питания ардуины - сбрасываются в 1января 2001 года. Хотя синхронизировал время на модуле часов и батарейка в них свежая

0

12

valex написал(а):

Извиняюсь!
Работает.
Останавливалась оттого что часы не прикрутил и Dht. Сейчас крутится как положено
Вот только с часами что то криво . После отключения питания ардуины - сбрасываются в 1января 2001 года. Хотя синхронизировал время на модуле часов и батарейка в них свежая

Какой модуль часов вы используете ? Как вы синхронизируете время ?

0

13

модуль часов DS1307. мануал здесь

0

14

вообще юзаю нано а бегущую строку исполнил на самоделке . атмега328 .лью usbasp програматором
?поможете прикрутить еще датчик температуры DS18D20..беспроводной на передатчике 433мгц ..чтоб температуру на улице показывал

Отредактировано valex (2015-11-17 12:19:29)

0

15

Если вы используете атмегу328 с бутлоадером, воткните ее в Ардуино, ардуино в комп через USB
Чтобы синхронизировать время с компьютерным, нужно добавить строку в секцию Setup, залить скетч, запустить собранное железо с часами от USB компа, при этом ардуина получит время от ПК,
затем закоментировать эту строку и снова залить скетч, чтобы часики уже шли самостоятельно.

Или залейте время в модуль часов 1307 на другой ардуине.

Код:
void setup(){

Wire.begin();
  RTC.begin();
  // Установка текущего времени системы в модуль RTC 1307
  RTC.adjust(DateTime(__DATE__, __TIME__));

}

0

16

Спасибо!!!
помогло ..часы настроил

0

17

valex написал(а):

вообще юзаю нано а бегущую строку исполнил на самоделке . атмега328 .лью usbasp програматором
?поможете прикрутить еще датчик температуры DS18D20..беспроводной на передатчике 433мгц ..чтоб температуру на улице показывал

Отредактировано valex (2015-11-17 12:19:29)

Для этого потребуется со стороны улицы: модуль передатчика + Arduino, со стороны дома: модуль приемника + Arduino + дисплей

Итого: 2 модуля ардуино

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

В качестве альтернативы попробуйте вот этот проект: http://habrahabr.ru/post/254465/
Здесь информация с датчиков передается по Bluetooth на экран мобильного телефона, планшета под управлением Android

0

18

Доброе время суток, а можно схему подключения сего девайса, и как подключить модуль часов на Ds3231. За ранее благодарен.

+1

19

И если можно, то скиньте все библиотеки, а то не могу найти половину.

0

20

Алексей Пивень написал(а):

Доброе время суток, а можно схему подключения сего девайса, и как подключить модуль часов на Ds3231. За ранее благодарен.

Вот здесь посмотрите http://www.goodliffe.org.uk/arduino/rtc_ds3231.php

0

21

Алексей Пивень написал(а):

И если можно, то скиньте все библиотеки, а то не могу найти половину.

https://github.com/adafruit/DHT-sensor-library

http://adatum.ru/shema-podklyucheniya-d … duino.html

https://github.com/adafruit/RTClib

http://littleredrat.blogspot.ru/2013/12 … odule.html

Отредактировано Technik (2015-12-01 23:01:36)

0

22

Алексей Пивень написал(а):

Доброе время суток, а можно схему подключения сего девайса, и как подключить модуль часов на Ds3231. За ранее благодарен.

Схемы как таковой я не рисовал

сначала подключите платы матриц, в программе это прописывается здесь:

int data = 11;    // DIN pin of MAX7219 module
int load = 10;    // CS pin of MAX7219 module
int clock = 13;  // CLK pin of MAX7219 moduleа

Платы подключаются друг за другом DOUT предыдущей к DIN следующей

количество матриц прописывается в скетче:

int maxInUse = 2;    //change this variable to set how many MAX7219's you'll use (5)

Модуль часов подключается так:

// Подключение модуля RTC - Arduino Uno
// SDA - A4
// SCL - A5
// 5v  - Vcc
// GND - GND

Алексей Пивень написал(а):

И если можно, то скиньте все библиотеки, а то не могу найти половину.

Все библиотеки взяты с просторов интернета, Google в помощь

0

23

Добрый вечер.

Вы меня просто спасли. Это то что мне надо было.

Как еще можно перевернуть изображение матрицы ?

0

24

хех... поворот матрицы, это сложно имхо высшая математика

0

25

Про поворот здесь есть http://arduino.ru/forum/programmirovani … xmatrixlib

0

26

valex написал(а):

Спасибо!!!
помогло ..часы настроил

допиливаем DS1307 как разжевано на видео

+1

27

Valex, спасибо. Занятное видео, надо будет попробовать

Отредактировано Lastik (2016-01-31 19:17:01)

0

28

Lastik написал(а):

Valex, спасибо. Занятное видео, надо будет попробовать

Отредактировано Lastik (Вчера 16:17:01)

незачто)

0

29

Помогите слепить "оленя " и " тюленя". Пытаюсь объединить данный проект и
универсальный пульт на дуине. По отдельности все работает. в куче- нет.  Поправьте плиз..где туплю?

#include "DHT.h"
#include <MaxMatrix.h>
#include <avr/pgmspace.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

#define DHTPIN 2     // DHT-11 out
#define DHTTYPE DHT11   // тип DHT-11
DHT dht(DHTPIN, DHTTYPE);

PROGMEM prog_uchar CH[] = {
  3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
  1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
  3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
  5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
  4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
  5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
  5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
  1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
  3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
  3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
  5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
  5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
  2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
  4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
  2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
  4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
  3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
  4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
  4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
  4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
  4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
  4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
  4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
  4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
  4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
  2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
  2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
  3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
  3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
  3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
  4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
  5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
  4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
  4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
  4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
  5, 8, B01100000, B00111111, B00100001, B00111111, B01100000, // Д   
  4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
  4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
  4, 8, B01111111, B00000001, B00000001, B00000001, B00000000, // Г   
  4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
  5, 8, B01111111, B00010000, B00001000, B00000100, B01111111, // И   
  5, 8, B01100011, B00010100, B01111111, B00010100, B01100011, // Ж   
  4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
  4, 8, B01111110, B00000001, B00000001, B01111111, B00000000, // Л   
  5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
  5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
  4, 8, B01111111, B00000001, B00000001, B01111111, B00000000, // П   
  4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
  4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P   
  4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
  5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
  4, 8, B01000111, B01001000, B01001000, B00111111, B00000000, // У   
  4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B   
  5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
  5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
  5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
  4, 8, B01000110, B00101001, B00011001, B01111111, B00000000, // Я   
  2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
  4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
  2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
  3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
  4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
  2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
  4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
  4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
  4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
  4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
  4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
  3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
  4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
  4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
  3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
  4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
  4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
  3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
  5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
  4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
  4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
  4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
  4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
  4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
  4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
  3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
  4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
  5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
  5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
  5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
  4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
  3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
  3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
  1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
  3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
  4, 8, B00000010, B00000101, B00000010, B00000000, B00000000, // ~ градус
};

int data = 8;    // DIN pin of MAX7219 module
int load = 9;    // CS pin of MAX7219 module
int clock = 10;  // CLK pin of MAX7219 module

int maxInUse = 1;    //change this variable to set how many MAX7219's you'll use (5)

MaxMatrix m(data, load, clock, maxInUse); // define module

byte buffer[10];

#include <IRremote.h>
IRsend irsend;
int y = 1;

void setup()
{
  m.init(); // module initialize
  m.setIntensity(10); // dot matix intensity 0-15
  Serial.begin(9600); // serial communication initialize

  Wire.begin();  // RTC_DS1307
  RTC.begin();
// RTC.adjust(DateTime(__DATE__, __TIME__));

  dht.begin(); // DHT-11
}
  void matrix(){

  int Temp = dht.readTemperature();
  int Hum = dht.readHumidity();

  DateTime now = RTC.now();
  int TDay=now.day();
  int TMonth=now.month();
  int TYear=now.year();
  int THour=now.hour();
  int TMinutes=now.minute();

  delay(100);
  m.shiftLeft(false, true);

  char string1[] = " Hello, my name is Vadim ...        ";
  sprintf(string1, "CEGODHZ %02d.%02d.%02d B %02d.%02d TEMPERATURA VO3DUXA %d~C VLAJHOCTb %i%%     ", TDay, TMonth, TYear, THour, TMinutes, Temp, Hum);
  Serial.println(string1);

  printStringWithShift(string1, 100);

}

void printCharWithShift(char c, int shift_speed){
  if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(maxInUse*8, 0, buffer);
  m.setColumn(maxInUse*8 + buffer[0], 0);

  for (int i=0; i<buffer[0]+1; i++)
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
  }
}
void loop() {
  if (Serial.available() > 0) {
    int x = Serial.read();
    if (x == 49) {
      y = 1;
    }
    if (x == 50) {
      y = 2;
    }
    if (y == 1) { // коды кнопок для пульта от телевизора
      if (x == 97) {
        irsend.sendNEC(0x2FD48B7, 32);
        delay(40);
      }
      if (x == 98) {
        irsend.sendNEC(0x2FDDA25, 32);
        delay(40);
      }
      if (x == 99) {
        irsend.sendNEC(0x2FD708F, 32);
        delay(40);
      }
      if (x == 100) {
        irsend.sendNEC(0x2FDF00F, 32);
        delay(40);
      }
      if (x == 101) {
        irsend.sendNEC(0x2FDD02F, 32);
        delay(40);
      }
      if (x == 102) {
        irsend.sendNEC(0x2FD30CF, 32);
        delay(40);
      }
      if (x == 103) {
        irsend.sendNEC(0x2FDD827, 32);
        delay(40);
      }
      if (x == 104) {
        irsend.sendNEC(0x2FD38C7, 32);
        delay(40);
      }
      if (x == 105) {
        irsend.sendNEC(0x2FD7887, 32);
        delay(40);
      }
      if (x == 106) {
        irsend.sendNEC(0x2FDF807, 32);
        delay(40);
      }
      if (x == 107) {
        irsend.sendNEC(0x2FD28D7, 32);
        delay(40);
      }
      if (x == 108) {
        irsend.sendNEC(0x2FD50AF, 32);
        delay(40);
      }
      if (x == 109) {
        matrix;   //   !!! НА ЭТУ КНОПУ И ХОЧУ ПОВЕСИТЬ ВКЛЮЧЕНИЕ "БЕГУЩЕЙ СТРОКИ"
        delay(40);
      }
    }
    if (y == 2) {  //коды кнопок пульта от медиаплеера
      if (x == 97) {
        irsend.sendNEC(0xFDC23D, 32);
        delay(40);
      }
      if (x == 98) {
        irsend.sendNEC(0xFDE01F, 32);
        delay(40);
      }
      if (x == 99) {
        irsend.sendNEC(0xFD18E7, 32);
        delay(40);
      }
      if (x == 100) {
        irsend.sendNEC(0xFDE817, 32);
        delay(40);
      }
      if (x == 101) {
        irsend.sendNEC(0xFDA857, 32);
        delay(40);
      }
      if (x == 102) {
        irsend.sendNEC(0xFD6897, 32);
        delay(40);
      }
      if (x == 103) {
        irsend.sendNEC(0xFDA857, 32);
        delay(40);
      }
      if (x == 104) {
        irsend.sendNEC(0xFD6897, 32);
        delay(40);
      }
      if (x == 105) {
        irsend.sendNEC(0xFDE817, 32);
        delay(40);
      }
      if (x == 106) {
        irsend.sendNEC(0xFD18E7, 32);
        delay(40);
      }
      if (x == 107) {
        irsend.sendNEC(0xFD9867, 32);
        delay(40);
      }
      if (x == 108) {
        irsend.sendNEC(0xFD28D7, 32);
        delay(40);
      }
      if (x == 109) {
        irsend.sendNEC(0xFD2847, 32);
        delay(40);

     
      }   
     
    }
  }
}



0

30

valex написал(а):

Помогите слепить "оленя " и " тюленя". Пытаюсь объединить данный проект и
универсальный пульт на дуине. По отдельности все работает. в куче- нет.  Поправьте плиз..где туплю?

Уважаемый, Valex.

Сразу возникает вопрос, Вы понимаете что должен делать этот "объединенный" скетч ? Что у Вас не работает ?

0


Вы здесь » Паяльник » Микроконтроллеры » Бегущая строка из N-Led матриц 8x8 на MAX7219 температура и влажность


создать форум