Re: Ардуино для чайников!
Прибор состоит из готовых китайских модулей.Согласно Вашего совета после датчика поставил "компаратор модуль lm393" его выход "DO" соединил с "D2" ардуино ,после соединения на модуле
загорается светодиод как будто модуль сработал от сигнала , при подаче сигнала на компаратор ардуино не срабатывает. Между+5V и минусом поставил 10 кОм и оттуда вручную подал 5V на "D2" ардуино всё работает.
Не пойму, где ошибка ?
Re: Ардуино для чайников!
Скорее всего неправильно рассчитаны делители опорного и сравниваемого сигналов на входах компаратора. Как вариант, можно читать данные с датчика не в лоб (HI/LOW), а как диапазон значений и отфильтровать нужный диапазон. Это, мне кажется, будет более правильный способ.
Re: Ардуино для чайников!
Посоветуйте, в какой лучше программе пособирать и позапускать скетчи и виртуально сделать макет с Ардуиной? Пока едет сама Ардуинка.
Какая более удобная и понятная? Fritzing, VBB, ISIS..?
Re: Ардуино для чайников!
Re: Ардуино для чайников!
Добрый день. В наличии имеется емкостной тачскрин Hannstouch AH-OA1S V1.0 E241232. В нем используется микросхема:
TX64A1
Q4P921.1
1202
К сожалению мне не удалось найти даташит на данную микросхему, поэтому надо выяснить протокол обмена данными. Для этого тачскрин подключен к Ардуино Нано v3.0. На плате тачскрина выведено в шлейф 6 сигналов: 6-gnd, 5-vcc, 4-int, 3-rst, 2-ck, 1-dat, scl и sda тоже имеются на плате, но их нету в шлейфе. Установлено, что тачскрин работает по интерфейсу PS/2. Есть вот такой скетч:
PHP код:
/*
* скетч для работы с ps/2-мышкой
*/
#include <ps2.h>
/*
* к Pin 5 - подключена линия Data, а к pin 6 – линия Clock
*/
PS2 mouse(6, 5);
/*
* Инициализация работы с мышкой.
* Посылается команда Сброса (Reset it)
* затем мышка переводится режим remote mode
* так, что мы получаем от неё данные по запросу
*/
void mouse_init()
{
mouse.write(0xff); // reset
mouse.read(); // ack byte
mouse.read(); // blank */
mouse.read(); // blank */
mouse.write(0xf0); // remote mode
mouse.read(); // ack
delayMicroseconds(100);
}
void setup()
{
Serial.begin(9600);
mouse_init();
}
/*
* считываем данные с мышки и выводим в COM-порт
*/
void loop()
{
char mstat;
char mx;
char my;
/* запрашиваем данные от мышки */
mouse.write(0xeb); // команда на чтение данных
mouse.read(); // игнорируем ack
mstat = mouse.read();
mx = mouse.read();
my = mouse.read();
/* выводим данные в COM-порт*/
Serial.print(mstat, BIN);
Serial.print("\tX=");
Serial.print(mx, DEC);
Serial.print("\tY=");
Serial.print(my, DEC);
Serial.println();
// delay(20);
}
C:\Users\54D3~1\AppData\Local\Temp\arduino_5b82caf 7d704f36d4e3377fc8c0231f6\sketch_nov27a.ino:5:17: fatal error: ps2.h: No such file or directory
#include <ps2.h>
^
compilation terminated.
exit status 1
Ошибка компиляции.
Что я делаю не так?
Re: Ардуино для чайников!
А библиотеку ps2.h установили?
Re: Ардуино для чайников!
Да, я скачал архив ps2.zip там есть файлик ps2.h. Как его установить?
Библиотеку поставил, теперь ругается на:
WProgram.h: No such file or directory
Re: Ардуино для чайников!
Нужно править этот файлик
поменяйте
Код:
Код:#include "WProgram.h"
на Код:
Код:
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
Re: Ардуино для чайников!
Скетч исправил, скомпилировал, загрузил в ардуино. Когда двигаю пальцем, в экране монитор COM порта 3 нету данных. Заметил в скетче не прописан pinout сигнала int. Выход со шлейфа тачскрина подключал к ардуино, так:
GND - GND
VCC - 3V3 (3,3В)
INT - D3
RST - RST
CK - D5
DAT - D6
По спецификации PS\2 на VCC надо подавать 5В, а если сгорит тачскрин?
http://robocraft.ru/blog/communication/100.html
http://robocraft.ru/blog/arduino/101.html
Re: Ардуино для чайников!
Проблема в следующем, нужно одновременно выводить картинку через TVout и звук через динамик.
Ниже приведен рабочий код - звук "бип" длительностью 0.8сек выводится по событию таймера через каждые 1.5сек, если раскомментировать строку TV.begin - звук не выводится. Догадываюсь, что связано с задержками delay где-то в недрах TVout и длительностью звука. Подскажите альтернативный путь.
Код:
#include <TVout.h>
#include <fontALL.h>
#include "pitches.h"
#include <MsTimer2.h>
TVout TV;
#define SpeakerPin 10// Контакт 10 для динамика
// Контакт 11 для Tvout Sync ЗАНЯТО!!!!
void setup()
{
MsTimer2::set(1500, Timer2_Timer); // таймер будет срабатывать через каждые 1500ms
MsTimer2::start();//запустить таймер
// TV.begin(PAL,120,96);
}
void loop()
{
}
void Timer2_Timer()
{
tone(SpeakerPin, NOTE_E4,800);
}