Digimouse
- Войдите на сайт для отправки комментариев
Вс, 08/12/2019 - 02:08
Здравствуйте, не могу понять по координатам монитора. Надо что по Y он ущел вверх могитора. Заранее спасибо.
Здравствуйте, не могу понять по координатам монитора. Надо что по Y он ущел вверх могитора. Заранее спасибо.
Здравствуйте, я вот тоже не могу понять по черенку лопаты. Надо что по Z она глубже копала. Заранее спасибо.
Заколдуй их, Рон!
Я изменяю положение положение пикселей по Y, он только меньше меняется
Система координат монитора - тут
#include "DigiKeyboard.h" int val = 0; void setup() { pinMode(4, INPUT); } void loop() { if (digitalRead(0)==HIGH) { DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT); delay(500); DigiKeyboard.println("CMD"); delay(1000); DigiKeyboard.println("start Chrome"); delay(2000); DigiKeyboard.println("тут ссылка"); delay(3000); DigiKeyboard.sendKeyStroke(KEY_F5); delay(5000); DigiKeyboard.sendKeyStroke(KEY_P); } }не открывается, я немного изменил скетч и он работает как мне надо. Мне не понятно как сделать, что при перезапуски пин в LOW, то когда уна перезагружается, действие выполняется на digisparke
Перед пинмоде присвойте пину значение LOW.
в сетапе указал pinMode(10, OUTPUT);
Это режим работы, а значение через digitalWrite где? Должно быть до pinMode
извини, чет не о том подумал, вот есть в скетче, digitalWrite(10, LOW); в сетапе
В Digispak нет 10 ноги. В скетче #6 нет digitalWrite(10, LOW); в сетапе. Приведите правильный скетч.
Это на arduino Uno #include <iarduino_RTC.h> iarduino_RTC time(RTC_DS1307); const char* strM="JanFebMarAprMayJunJulAugSepOctNovDec"; const char* sysD=__DATE__; const int i[6] {(sysT[6]-48)*10+(sysT[7]-48), (sysT[3]-48)*10+(sysT[4]-48), (sysT[0]-48)*10+(sysT[1]-48), (sysD[4]-48)*10+(sysD[5]-48), ((int)memmem(strM,36,sysD,3)+3-(int)&strM[0])/3, (sysD[9]-48)*10+(sysD[10]-48)}; unsigned long rtc; void setup() pinMode(10, OUTPUT); digitalWrite(10, LOW); void ds1307() { if(time.Hours==6&& time.minutes==30&& time.seconds==0 && time.weekday!=7) { time.begin(); digitalWrite(10, HIGH); digitalWrite(10, LOW); } if (millis() - rtc > 1000) { lcd.setCursor(0,0); lcd.print( time.gettime("d/m/y")); lcd.setCursor(0,1); lcd.print(time.gettime("H:i:s")); lcd.setCursor(13,0); lcd.print( time.gettime("D")); rtc = millis(); } void loop() ds1307();Это на Digispark #include "DigiKeyboard.h" void setup() { pinMode(4, INPUT); } void loop() { if (digitalRead(0)==HIGH) { DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT); delay(500); DigiKeyboard.println("CMD"); delay(1000); DigiKeyboard.println("start Chrome"); delay(2000); DigiKeyboard.println("тут ссылка"); delay(3000); DigiKeyboard.sendKeyStroke(KEY_F5); delay(5000); DigiKeyboard.sendKeyStroke(KEY_P); } }На уно не компилируется. У сетап нет скобочек. digitalWrite(10, LOW); должен стоять до pinMode(10, OUTPUT); time.begin(); должен вызываться один раз в сетап. Переменная sysT не определена. void ds1307() нет закрывающейся скобки. Вы нам мозги парите?
Это не тот код, что используется на uno сейчас, на uno сейчас крутится код, из 200 строчек, я написал, код только для часов и digisparka, где у меня есть проблема.
Дурдом :(
#include <Adafruit_Sensor.h> #include <LiquidCrystal_I2C.h> #include <DHT.h> #include <iarduino_RTC.h> #include <Wire.h> LiquidCrystal_I2C lcd(0x27, 16, 2); #include <OneWire.h> iarduino_RTC time(RTC_DS1307); OneWire ds(2); // Создаем объект OneWire для шины 1-Wire, с помощью которого будет осуществляться работа с датчиком int regim=1; int flag=0; int valBut = 0; // Задаем переменную, для счетчика long previousMillis = 0; // Зададим начальное значение для счетчика millis long TimePush = 2000; // Время нажатия на кнопку unsigned long temp; unsigned long rtc; unsigned long alarm; #define DHTPIN 7 DHT dht(DHTPIN, DHT11); //Инициация датчика const char* strM="JanFebMarAprMayJunJulAugSepOctNovDec"; // Определяем массив всех вариантов текстового представления текущего месяца. const char* sysT=__TIME__; // Получаем время компиляции скетча в формате "SS:MM:HH". const char* sysD=__DATE__; // Получаем дату компиляции скетча в формате "MMM:DD:YYYY", где МММ - текстовое представление текущего месяца, например: Jul. // Парсим полученные значения sysT и sysD в массив i: // Определяем массив «i» из 6 элементов типа int, содержащий следующие значения: секунды, минуты, часы, день, месяц и год компиляции скетча. const int i[6] {(sysT[6]-48)*10+(sysT[7]-48), (sysT[3]-48)*10+(sysT[4]-48), (sysT[0]-48)*10+(sysT[1]-48), (sysD[4]-48)*10+(sysD[5]-48), ((int)memmem(strM,36,sysD,3)+3-(int)&strM[0])/3, (sysD[9]-48)*10+(sysD[10]-48)}; //int moniror = 9; void setup() { digitalWrite(10, LOW); pinMode(10, OUTPUT); //pinMode(moniror, OUTPUT); Serial.begin(9600); lcd.begin(); Serial.begin(9600); Wire.begin(); dht.begin(); time.begin(); // Инициируем RTC модуль //ptime.settime(i[0],i[1],i[2],i[3],i[4],i[5], 0); //pinMode(6, OUTPUT); } void loop() { //void(* resetFunc) (void) = 0; if(digitalRead(8)==HIGH&&flag==0)//если кнопка нажата { regim++; flag=1; if(regim>2)//ограничим количество режимов { regim=1;//так как мы используем только одну кнопку, } } if(digitalRead(8)==LOW&&flag==1)//если кнопка НЕ нажата { flag=0;//обнуляем переменную "knopka" } if(regim==1) { ds18b20(); dth11(); ds1307(); } if(regim==2) { ds1307(); lcd.setCursor(9,0); lcd.print(" "); lcd.setCursor(9,1); lcd.print(" "); } /*{ digitalWrite(moniror, LOW); } if(digitalRead(8) == HIGH) // если кнопка нажата { // if(millis() - previousMillis >= 1) // начинаем считать время нажатия { // previousMillis = millis(); // valBut++; // с каждой миллисекундой увеличиваем значение valBut } } if(valBut >= TimePush) // как толькозначение valLed становится равным TimtPush { // Serial.print("Reboot"); resetFunc(); valBut = 0; // и устанавливаем valBut = 0 }*/ } void ds18b20() { if (millis() - temp > 5000) { byte data[2]; // Место для значения температуры ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память ds.reset(); // Теперь готовимся получить значение измеренной температуры ds.write(0xCC); ds.write(0xBE); // Просим передать нам значение регистров со значением температуры // Получаем и считываем ответ data[0] = ds.read(); // Читаем младший байт значения температуры data[1] = ds.read(); // А теперь старший // Формируем итоговое значение: // - сперва "склеиваем" значение, // - затем умножаем его на коэффициент, соответсвующий разрешающей способности (для 12 бит по умолчанию - это 0,0625) float temperature = ((data[1] << 8) | data[0]) * 0.0625; lcd.setCursor(13,1); if(temperature >1 && temperature < 10) { lcd.print("0"); } lcd.print(temperature,0); if(temperature >= 20) { lcd.setCursor(15,1); lcd.print("t"); } if(temperature <= 14) { lcd.setCursor(15,1); lcd.print("x"); } if(temperature >= 15) { lcd.setCursor(15,1); lcd.print("n"); } temp = millis(); } } void dth11() { if (millis() - temp > 4000) { float h = dht.readHumidity(); float t = dht.readTemperature(); lcd.setCursor(9,0); lcd.print(t,0); lcd.setCursor(9,1); lcd.print(h,0); lcd.print("%"); if(t >= 30) { lcd.setCursor(11,0); lcd.print("t"); } if(t <= 29) { lcd.setCursor(11,0); lcd.print("x"); } } } void ds1307() { if(time.Hours==18&& time.minutes==07&& time.seconds==0 && time.weekday!=7) { //tone(6,800,5000); digitalWrite(10, HIGH); digitalWrite(10, LOW); } if (millis() - rtc > 1000) { lcd.setCursor(0,0); lcd.print( time.gettime("d/m/y")); lcd.setCursor(0,1); lcd.print(time.gettime("H:i:s")); lcd.setCursor(13,0); lcd.print( time.gettime("D")); rtc = millis(); } }