#1 Re: Програмування Arduino » не нажимается правая кнопка миши » 2022-06-15 18:12:18

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

#2 Re: Програмування Arduino » не нажимается правая кнопка миши » 2022-06-14 20:44:36

г0сть пише:

И тишина ...
Испугался что-ли? Так здесь не кусаются. Или не знаешь что ответить? Ок, пойдем наглядным путем. Вот твой код без лишнего "мусора", только кнопки. Запусти и попробуй разобраться что у тебя не так.

boolean butt_flag1 = 0;
boolean butt1;

boolean butt_flag2 = 0;
boolean butt2;

void setup() {
  Serial.begin(9600);
 pinMode(11,INPUT_PULLUP);
 pinMode(12,INPUT_PULLUP);
}

void mouse_move(){
  butt1 = digitalRead(12); 
  butt2 = digitalRead(11); 
  
  if(butt1 == 1 && butt_flag1 == 0){
    butt_flag1 = 1;
    Serial.println("MOUSE_LEFT_PRESS");
    //Mouse.press(MOUSE_LEFT);
          }

  if(butt1 == 0 && butt_flag1 == 1){
    butt_flag1 = 0;
    Serial.println("MOUSE_LEFT_NO PRESS");
    //Mouse.release();
      }

  if(butt2 == 1 && butt_flag2 == 0){
    butt_flag2 = 1;
    Serial.println("MOUSE_RIGHT_PRESS");
    //Mouse.press(MOUSE_RIGHT);
      }

  if(butt2 == 0 && butt_flag2 == 1){
    butt_flag2 = 0;
    Serial.println("MOUSE_RIGHT_NO PRESS");
    //Mouse.release();
      }
}

void loop() {
  mouse_move();
}

ничего не понимаю, все нормально в коде

#3 Re: Програмування Arduino » не нажимается правая кнопка миши » 2022-06-13 10:46:36

г0сть пише:

И тишина ...
Испугался что-ли? Так здесь не кусаются. Или не знаешь что ответить? Ок, пойдем наглядным путем. Вот твой код без лишнего "мусора", только кнопки. Запусти и попробуй разобраться что у тебя не так.

boolean butt_flag1 = 0;
boolean butt1;

boolean butt_flag2 = 0;
boolean butt2;

void setup() {
  Serial.begin(9600);
 pinMode(11,INPUT_PULLUP);
 pinMode(12,INPUT_PULLUP);
}

void mouse_move(){
  butt1 = digitalRead(12); 
  butt2 = digitalRead(11); 
  
  if(butt1 == 1 && butt_flag1 == 0){
    butt_flag1 = 1;
    Serial.println("MOUSE_LEFT_PRESS");
    //Mouse.press(MOUSE_LEFT);
          }

  if(butt1 == 0 && butt_flag1 == 1){
    butt_flag1 = 0;
    Serial.println("MOUSE_LEFT_NO PRESS");
    //Mouse.release();
      }

  if(butt2 == 1 && butt_flag2 == 0){
    butt_flag2 = 1;
    Serial.println("MOUSE_RIGHT_PRESS");
    //Mouse.press(MOUSE_RIGHT);
      }

  if(butt2 == 0 && butt_flag2 == 1){
    butt_flag2 = 0;
    Serial.println("MOUSE_RIGHT_NO PRESS");
    //Mouse.release();
      }
}

void loop() {
  mouse_move();
}

нет, нас вчера бомбили, вот и не мог выйти на связь

#6 Re: Програмування Arduino » не нажимается правая кнопка миши » 2022-06-12 19:25:02

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

#7 Програмування Arduino » не нажимается правая кнопка миши » 2022-06-12 16:30:45

Cheburek
відповідей: 15

не нажемается правая кнопка мижи при нажатии кнопки
нажатие кнопки находится в void move_mouse()
вот код

#include <Keyboard.h>
#include <Mouse.h>

unsigned long last;

boolean butt_flag1 = 0;
boolean butt1;

boolean butt_flag2 = 0;
boolean butt2;


int VRx = A0;
int VRy = A1;

int VRx2 = A2;
int VRy2 = A3;

int SW = 12;
int SW2 = 11;

int xPosition = 0;
int yPosition = 0;
int SW_state = 0;

int mapX = 0;
int mapY = 0;

int xPosition2= 0;
int yPosition2 = 0;
int SW_state2 = 0;

int mapX2 = 0;
int mapY2 = 0;

int pin_f = 10;

int pin_1 = 9;
int pin_2 = 8;
int pin_3 = 7;
int pin_4 = 6;

int pin_e = 5;
int pin_q = 4;

void setup() {
   Keyboard.begin();
   Mouse.begin();
   Serial.begin(9600); 
  
   pinMode(VRx, INPUT);
   pinMode(VRy, INPUT);
   pinMode(VRx2, INPUT);
   pinMode(VRy2, INPUT);
   pinMode(pin_f, INPUT_PULLUP); 
   pinMode(SW, INPUT_PULLUP);
   pinMode(SW2, INPUT_PULLUP); 

   pinMode(pin_1, INPUT_PULLUP);
   pinMode(pin_2, INPUT_PULLUP);
   pinMode(pin_3, INPUT_PULLUP);
   pinMode(pin_4, INPUT_PULLUP);

   pinMode(pin_e, INPUT_PULLUP);
   pinMode(pin_q, INPUT_PULLUP);

}

void mouse_move(){
  butt1 = digitalRead(12); 
  butt2 = digitalRead(11); 
  xPosition = analogRead(VRx);
  yPosition = analogRead(VRy);
  
  SW_state = !digitalRead(SW);
  mapX = map(xPosition, 0, 1023, -512, 512);
  mapY = map(yPosition, 0, 1023, -512, 512);
  /*
  Serial.print("X: ");
  Serial.print(mapX);
  Serial.print(" | Y: ");
  Serial.print(mapY);
  Serial.print(" | Button: ");
  Serial.println(SW_state);
  delay(100);
   */
  
  
  
  if(mapY < 0){
    //Serial.println("X+");
    Mouse.move(0, -1, 0);
    }
  if(mapY > 38){
    //Serial.println("X-");
    Mouse.move(0, 1, 0);
    }
  if(mapX > 0){
    //Serial.println("Y+");
    Mouse.move(-1, 0, 0);
    }
  if(mapX < -10){
    //Serial.println("Y-");
    Mouse.move(1,0, 0);
    }
  if(butt1 == 1 && butt_flag1 == 0){
    butt_flag1 = 1;
    Mouse.press(MOUSE_LEFT);
    
      }
  if(butt1 == 0 && butt_flag1 == 1){
    butt_flag1 = 0;
    Mouse.release();
      }
  if(butt2 == 1 && butt_flag2 == 0){
    butt_flag2 = 1;
    Mouse.press(MOUSE_RIGHT);
      }
  if(butt2 == 0 && butt_flag2 == 1){
    butt_flag2 = 0;
    Mouse.release();
      }
}

void keyboard_press(){
  xPosition2 = analogRead(VRx2);
  yPosition2 = analogRead(VRy2);

  SW_state2 = !digitalRead(SW2);
  mapX2= map(xPosition, 0, 1023, -512, 512);
  mapY2 = map(yPosition, 0, 1023, -512, 512);
  
  
  if(!digitalRead(pin_f) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('f');
    }
    }
  if(!digitalRead(pin_2) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('1');
    }
    }
  if(!digitalRead(pin_1) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('2');
    }
    }
  if(!digitalRead(pin_3) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('3');
    }
    }
  if(!digitalRead(pin_4) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('4');
    }
    }
  if(!digitalRead(pin_q) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('q');
    }
    }
  if(!digitalRead(pin_e) == 1){
    if (millis()- last > 100){
      last = millis();
      Keyboard.press('e');
    }
    }   
  else{
    Keyboard.releaseAll();
   }
  }

void loop() {
  keyboard_press();
  mouse_move();
  /*
  Serial.println(!digitalRead(pin_f));
  Serial.println(!digitalRead(pin_1));
  Serial.println(!digitalRead(pin_2));
  Serial.println(!digitalRead(pin_3));
  Serial.println(!digitalRead(pin_4));
  delay(100);
  */
}

#8 Re: Програмування Arduino » ошибка при загрузке скетча » 2022-06-12 13:40:41

г0сть пише:

Круто! А у меня и это не получается!  sad  sad  sad

надо чтобы переменая не начаналась с цифер

#10 Програмування Arduino » ошибка при загрузке скетча » 2022-06-12 13:05:06

Cheburek
відповідей: 4

делаю джойстик, при вигрузке скетча дает ошибку:

Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "Arduino Leonardo"

gayshit_joystik:7:5: error: expected unqualified-id before numeric constant

gayshit_joystik:8:5: error: expected unqualified-id before numeric constant

gayshit_joystik:11:5: error: expected unqualified-id before numeric constant

gayshit_joystik:20:5: error: expected unqualified-id before numeric constant

gayshit_joystik:21:5: error: expected unqualified-id before numeric constant

gayshit_joystik:22:5: error: expected unqualified-id before numeric constant

gayshit_joystik:24:5: error: expected unqualified-id before numeric constant

gayshit_joystik:25:5: error: expected unqualified-id before numeric constant

D:UserDatamikeOneDriveДокументыArduinogayshit_joystikgayshit_joystik.ino: In function 'void keyboard_press()':

gayshit_joystik:77:3: error: unable to find numeric literal operator 'operator""xPosition'

gayshit_joystik:77:27: error: unable to find numeric literal operator 'operator""VRx'

gayshit_joystik:78:3: error: unable to find numeric literal operator 'operator""yPosition'

gayshit_joystik:78:27: error: unable to find numeric literal operator 'operator""VRy'

gayshit_joystik:80:3: error: unable to find numeric literal operator 'operator""SW_state'

gayshit_joystik:80:28: error: unable to find numeric literal operator 'operator""SW'

gayshit_joystik:81:3: error: unable to find numeric literal operator 'operator""mapX'

gayshit_joystik:82:3: error: unable to find numeric literal operator 'operator""mapY'

Multiple libraries were found for "Keyboard.h"

 Used: D:UserDatamikeOneDriveДокументыArduinolibrariesKeyboard

 Not used: C:Program FilesWindowsAppsArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wttlibrariesKeyboard

Multiple libraries were found for "Mouse.h"

 Used: D:UserDatamikeOneDriveДокументыArduinolibrariesMouse

 Not used: C:Program FilesWindowsAppsArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wttlibrariesMouse

exit status 1

expected unqualified-id before numeric constant



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

#11 Програмування Arduino » как симулировать esp32 с соединением в интернет? » 2022-05-29 18:23:40

Cheburek
відповідей: 2

можно ли как то симулировать esp32 с соединением в интернет

#15 Re: Програмування Arduino » не работает » 2022-05-29 14:53:17

переделал код, не виводет нормально текст на lcd1602 ic2
не виводит темературу с влажностью сейчас

#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h> 


#define DHTPIN 3     

#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);

float start_temp = 10;
float start_hum = 10;
unsigned long last_time2;
float h;
float t;

void setup() {


  lcd.begin(16, 2);
  dht.begin();
  lcd.backlight();
  lcd.clear();
  h = dht.readHumidity();
  t = dht.readTemperature();
  start_temp = t;
  start_hum = h;
  
}

void loop() {
  if (millis()- last_time2 > 2000){
    last_time2 = millis();
    // Reading temperature or humidity takes about 250 milliseconds!
    // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
    h = dht.readHumidity();
    t = dht.readTemperature();
    
    if (isnan(h) || isnan(t)) {
      lcd.begin(16, 2);
      lcd.print("ERROR");
      
      return;
    }
  
    lcd.print(start_temp);
    lcd.print("C ");
    lcd.print(start_hum);
    lcd.print("% H ");
    lcd.setCursor(0,2);
    lcd.print(t);
    lcd.print("C "); 
    lcd.print(h);
    lcd.print("% H ");
    
  }
}

#19 Програмування Arduino » не работает » 2022-05-28 12:49:33

Cheburek
відповідей: 14

при вигрузке скетча дает ошибку

D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino: In function 'void setup()':
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:34:19: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:35:18: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino: In function 'void loop()':
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:45:23: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:47:18: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:48:18: error: expected primary-expression before '.' token

Compilation error: exit status 1
вот код

#include <DHT.h>
#include <DHT_U.h>


#include <LiquidCrystal_I2C.h>
#include <Wire.h> 



LiquidCrystal_I2C lcd(0x27, 16, 2);
#define outPin 8	
#define DHTPIN 8
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);


unsigned long last_time2;

int seconds = 0;
int minutes = 0;
int hours = 0;
int days = 0;

float start_temp = 0;
float start_hum = 0;


void setup() {
  
  lcd.begin(16, 2);
	lcd.backlight();
	lcd.clear();
  start_temp = DHT.temperature;
  start_hum = DHT.humidity;



}

void loop() {
  timer();
  if (millis()- last_time2 > 1000){
    last_time2 = millis();
    int readData = DHT.read11(outPin);

    float t = DHT.temperature;	
    float h = DHT.humidity;		
    lcd.begin(16, 2);
    lcd.print(start_temp);
    lcd.print("C");
    lcd.print(start_hum);
    lcd.print(" H");
    lcd.setCursor(0,2);
    lcd.print(t);
    lcd.print("C ");
    lcd.print(h);
    lcd.print("H%");
    lcd.clear();
  }
}


void timer(){
  if (millis()- last_time2 > 1000){
    last_time2 = millis();
    seconds = seconds + 1;
  }
  if (seconds == 60){
    seconds = 0;
    minutes = minutes + 1;
    }
    
  if (minutes == 60){
    minutes = 0;
    hours = hours + 1;
    }  
  if (hours == 24){
    hours = 0;
    days = days + 1;
    } 

  }

#20 Re: Програмування Arduino » как сделать так чтобы светодиод включался каждые 10 секунд на две сек » 2022-05-17 16:51:28

так дякую, зрозумів, але як мені тепер зробити так чоб він кожні 2 секунди горів з інтервалом 10 секунд

#22 Re: Програмування Arduino » как сделать так чтобы светодиод включался каждые 10 секунд на две сек » 2022-05-17 13:37:46

я незнаю як його зробити ЯК ЙОГО написати, не через делей і я питаю чи хтось знає як це зробмти?

Підвал форуму