В первый раз

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Обсуждение вопросов о первых подключениях Ардуино Мега

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Всем привет!

Я хочу подключить вот такой дисплей http://easyelectronics.ru/rabota-s-graficheskim-displeem-wg12864-na-baze-kontrollera-ks0107.html  только к ардуино мега. Со схемой вроде разобрался , а вот программку простенькую и к каким ногам ардуино подсоединить хотелось бы узнать. Заранее благодарен за помощь...

Хотя бы вывести точку на экран!?

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Смотрю сделанное мной фото у вас в аватаре) Если у вас дисплей который на фото то в чём проблемы?!) Я лично его запускал со скетчем игры. 

Так давайте разберемся что у вас за дисплей? А дальше как его правильно подключать и программировать

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Добрый день!

Монитор у меня как на фото. Хотя бы вывести точку на экран! для начала.

whoim
Offline
Зарегистрирован: 03.11.2011

 К сожалению, отсюда не видно маркировку дисплея и какой контроллер используется, а также к каким выводам вы его подключили на ардуино)

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Дисплей марки ST7920

А к выводам меги я не подключал. Не знаю к каким лучше

whoim
Offline
Зарегистрирован: 03.11.2011

 оу, есть такой. Трудно с ним работать.

http://arduino.cc/playground/Code/LCD12864

whoim
Offline
Зарегистрирован: 03.11.2011

и кстати это не тот дисплей о котором вы писали выше

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 А к каким ногам к ардуино цеплять?

whoim
Offline
Зарегистрирован: 03.11.2011

 voin2100 по ссылке выше написано

whoim
Offline
Зарегистрирован: 03.11.2011

 

Wiring:

EN = Arduino Pin 18
RS = Arduino Pin 17
RW = Arduino Pin 16
D7 = Arduino Pin 7
D6 = Arduino Pin 6
D5 = Arduino Pin 5
D4 = Arduino Pin 4
D3 = Arduino Pin 11
D2 = Arduino Pin 10
D1 = Arduino Pin 9
D0 = Arduino Pin 8
CSEL1 = Arduino Pin 14

 

whoim
Offline
Зарегистрирован: 03.11.2011
voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 

14,16.17,18 ноги Ардуино не понял к каким ногам дисплея и почему так мало выводов.

ведь на Lcd их 20 Ну пусть 5 выводов подсветка и контрастность, а где еще 3?

 

whoim
Offline
Зарегистрирован: 03.11.2011

 навскидку уже не помню, перечитай мою тему (по ссылке). Там на +5в один их них через резистор, другие на массу.

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Все посчитал-3 ног не хватает

 

whoim
Offline
Зарегистрирован: 03.11.2011

 

EN = Arduino Pin 18
RS = Arduino Pin 17
RW = Arduino Pin 16
D7 = Arduino Pin 7
D6 = Arduino Pin 6
D5 = Arduino Pin 5
D4 = Arduino Pin 4
D3 = Arduino Pin 11
D2 = Arduino Pin 10
D1 = Arduino Pin 9
D0 = Arduino Pin 8
CSEL1 = Arduino Pin 14
	PIN1---VSS
04
PIN2---VDD
05
PIN3---VO/VDD/NC
06
PIN4---D/I
07
PIN5---R/W
08
PIN6---E
09
PIN7-PIN14----DB0-DB7
10
PIN15---PSB
11
PIN16---NC
12
PIN17---RST
13
PIN18---VEE/NC
14
PIN19---A
15
PIN19---K

 

whoim
Offline
Зарегистрирован: 03.11.2011

 A/K - анод катод подсветки. E-EN, RST через резистор на плюс (или минус, попробуешь). RW=R/W. CSEL1 = PSB. RS это выбор регистра.

Попробуй в минимуме. 

setPins(int tRS, int tRW, int tD7, int tD6, int tD5, int tD4, int tD3, int tD2, int tD1, int tD0) Pass a command directly to the screen
tRS = Register Set
tRW = Read/Write
tD7 = Data line 7
tD6 = Data line 6
tD5 = Data line 5
tD4 = Data line 4
tD3 = Data line 3
tD2 = Data line 2
tD1 = Data line 1
tD0 = Data line 0

 

whoim
Offline
Зарегистрирован: 03.11.2011

 VSS питание дисплея (5в), VDD похоже контрастность (или 3 пин), их как обычно через 10ком на плюс/минус. Обязательно крути резистор от упора до упора, я долго искал отчего дисплей не работает.. покрутил и нашел его в конце диапазона, а он подстроечный ) 

whoim
Offline
Зарегистрирован: 03.11.2011

 На пинах дисплея может быть V0, что есть регулировка контраста

whoim
Offline
Зарегистрирован: 03.11.2011
voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Я уже совсем запутался... Вот, что я понял

  1. GND  -   -5V
  2. Vcc   -   +5v
  3. Vo    -   Средний вывод переменного резистора
  4. D/I   -    ???

  5. R/W  -   Pin 16
  6. E     -     ???
  7. BD0 - Pin8
  8. BD1 - Pin9
  9. BD2 - Pin10
 10.BD3 - Pin11
 11.BD4 - Pin4

 12.BD5 - Pin5
 13.BD6 - Pin6
 14.BD7 - Pin7
 15.CS1 -
 16.CS2 -
 17.RST - Через резистор (какой?) на "+"
 18.Vee - ???
 19.A  -  "+" 5v
 20.K  - Через резистор 10 Ом на массу

 

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Я уже совсем запутался... Вот, что я понял

  1. GND  -   -5V
  2. Vcc   -   +5v
  3. Vo    -   Средний вывод переменного резистора
  4. D/I   -    ???

  5. R/W  -   Pin 16
  6. E     -     ???
  7. BD0 - Pin8
  8. BD1 - Pin9
  9. BD2 - Pin10
 10.BD3 - Pin11
 11.BD4 - Pin4

 12.BD5 - Pin5
 13.BD6 - Pin6
 14.BD7 - Pin7
 15.CS1 -
 16.CS2 -
 17.RST - Через резистор (какой?) на "+"
 18.Vee - ???
 19.A  -  "+" 5v
 20.K  - Через резистор 10 Ом на массу

 

whoim
Offline
Зарегистрирован: 03.11.2011

 

Во! Я ж плату разводил для него, посмотри по ней на какие выводы атмеги32 идет и сопоставь.

Ну и вот:

whoim
Offline
Зарегистрирован: 03.11.2011

 На какие именно пины ардуины будешь цеплять пофигу, главное правильно укажи их в setPins, мои бесполезны ибо они под атмегу32, там другая нумерация..

whoim
Offline
Зарегистрирован: 03.11.2011

 И помоему те пины которых нет в setPins надо найти в библиотеке и переназначить

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Ну добавлю ноги Ардуино, но теперь программа... и счего начать?

whoim
Offline
Зарегистрирован: 03.11.2011

 http://arduino.cc/playground/Code/LCD12864

 

Example

Lets try to draw a Circle, and a the number 012 on screen
First, we Initialise the LCD
LCDA.Initialise();
Let's delay a little bit
delay(500);
Now to start the rendering process (graphics on)
LCDA.Render();
Lets draw a circle
LCDA.DrawCircle(30,135,5);
The circle has been drawn to an off screen buffer, time to draw it on screen!
LCDA.RenderScreenBuffer(2); // lets draw it in the second screen
O.K. we said we need some characters in there as well. So lets enable ASCII mode and delay (we need at least 1 ms delay):
LCDA.Draw(false,4,0);
delay(1);
If we convert the characters '0', '1', and '2' we get the following 8 bit binary:
LCDA.setPins(1,0,0,0,1,1,0,0,0,0);
LCDA.setPins(1,0,0,0,1,1,0,0,0,1);
LCDA.setPins(1,0,0,0,1,1,0,0,1,0);
Now to wrap it all up, we set Draw back to true, if you don't do this the circle won't appear
LCDA.Draw(true,4,0);

 

whoim
Offline
Зарегистрирован: 03.11.2011

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

whoim
Offline
Зарегистрирован: 03.11.2011

 В этом экране экран как бы поделен на два. И работать надо отдельно с каждым. Рисуешь в буфере то что надо и выводишь в ту половину, в которую надо.

step962
Offline
Зарегистрирован: 23.05.2011

whoim пишет:

 В этом экране экран как бы поделен на два. И работать надо отдельно с каждым. Рисуешь в буфере то что надо и выводишь в ту половину, в которую надо.

Дело за малым - за буфером, размер которого даже для дисплея от м55 (101х80???) должен быть никак не менее 101х80х2byte/2 -> 8 кбайт.

Упс. Попутал с соседним обсуждением. Ну, здесь попроще - достаточно иметь 128х64/8/2 -> 512 байт. Размер терпимый.

whoim
Offline
Зарегистрирован: 03.11.2011

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

whoim
Offline
Зарегистрирован: 03.11.2011

 Короче заказал на ks008, для него библиотеки вменяемые )

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Всем добрый вечер!

Подсоединил я экран, загрузил игру Pong взял из нее библиотеку(#include <LCD12864.h>) и иницализацию экрана(LCDA.Initialise();)

и попробовал нарисовать линию(DrawBrLine(11, 11, 111, 111);) НО не тут то было. Пишет компилятор (LCD1_pde.cpp: In function 'void loop()':
LCD1_pde:20: error: 'DrawBrLine' was not declared in this scope) Помогите !!!

whoim
Offline
Зарегистрирован: 03.11.2011

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

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Да, но функции из библиотеки, просто может быть диапазон координат не тот?

whoim
Offline
Зарегистрирован: 03.11.2011

 Нет, компилятор четко говорит - такое слово не определено.

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012
voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Или вот тоже ошибка

#include <LCD12864.h>
#include <LCDSprite.h>

#include <LCD12864.h>

void setup() {

LCDA.Initialise(); // INIT SCREEN

delay(500); // Some delay
LCDA.Render(); // Start the Rendering process

delay(500); // Some Delay

}

 

void loop() {

 

LCDA.setPins(1,0,0,0,1,1,0,0,0,1)
}

voin2100
voin2100 аватар
Offline
Зарегистрирован: 19.01.2012

 Вот пишет компилятор

LCD1.cpp: In function 'void loop()':
LCD1:24: error: expected `;' before '}' token

whoim
Offline
Зарегистрирован: 03.11.2011

 LCDA.setPins(1,0,0,0,1,1,0,0,0,1) ;
}

вам вправду не удается понять то что пишет компилятор?

whoim
Offline
Зарегистрирован: 03.11.2011

 вот, пользуйтесь: http://translate.google.ru/#en|ru|error%3A%20expected%20%60%3B'%20before%20'%7D'%20token

Мартин
Offline
Зарегистрирован: 30.01.2012

 Здравствуйте первый раз подключаю диод и датчикилинии 4 штуки. С диодом разобрался, а как подключить датчик, лучше проводки по пинам? И код что бы диод мигал когда датчик срабатывал... И 3 вопрос: Что если Д293 драйвер запитать от платы ардуин и снеё сделать выводы на диод и датчики? Уменя ардуие нано.