• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Licznik cyfrowy do motocykla
#11
dtostrf(_h_, 4, 0, hTemp)
Ta linijka nie przechodzi weryfikacji. A tak w ogóle to przy użyciu hexa nie powinno się też kodować przycisków? Widziałem to gdzieś w przykładzie
 
Odpowiedź
#12
To jest mój przykład a nie to co miałeś zrobić. Miałeś zrobić tak


Serial.print("bt0.val=");
Serial.write(0x22);
Serial.print(0);
Serial.write(0x22);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#13
Zrobiłem tak:
Kod:
if (lux < 50)

  {

    Serial.print("bt0.val=");
    Serial.write(0x22);
    Serial.print(1);
    Serial.write(0x22);
    Serial.write(0xff);
    Serial.write(0xff);
    Serial.write(0xff);
      digitalWrite(TRIGGER, HIGH);
      Serial.println("lamp is ON");
     
   
       
  }
  else {
    Serial.print("bt0.val=");
    Serial.write(0x22);
    Serial.print(0);
    Serial.write(0x22);
    Serial.write(0xff);
    Serial.write(0xff);
    Serial.write(0xff);
      digitalWrite(TRIGGER, LOW);
      Serial.println("lamp is OFF");
i dalej nic...
Cały czas ta sama sytuacja na MCU Return to widać, a na Simulator Return, że komenda jest nieprawidłowa
 
Odpowiedź
#14
wrzuć projekt nextion
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#15
(10-02-2022, 22:04)Jarewa0606 napisał(a): wrzuć projekt nextion
https://drive.google.com/file/d/1zBScXyk...p=drivesdk
 
Odpowiedź
#16
Nie potrzebnie wprowadziłem w błąd bo się coś zmieniło 

To jest prawidłowy kod

Kod:
#include <Wire.h>;
#include <BH1750.h>;


int TRIGGER = 12;


BH1750 lightMeter;
char buffer[100] = {0};


void setup(){
  Serial.begin(9600);
  Wire.begin();
  lightMeter.begin();
  pinMode (TRIGGER,OUTPUT);


}

void loop() {


float lux = lightMeter.readLightLevel();

delay(250);


if (lux < 50)

  {

    Serial.print("bt0.val=");
    Serial.print("1");
    Serial.write(0xff);
    Serial.write(0xff);
    Serial.write(0xff);
      digitalWrite(TRIGGER, HIGH);
 
   
   
     
  }
  else {
    Serial.print("bt0.val=");
    Serial.print("0");
    Serial.write(0xff);
    Serial.write(0xff);
    Serial.write(0xff);
      digitalWrite(TRIGGER, LOW);
 
  }

}

Ale i tak robisz dużo błędów

po pierwsze jak piszesz już kod to nie wysyłaj coś innego na port bo to zakłóca pracę a one nic nie wnoszą do nextion.. 

Po drugie drugi błąd w nextion i to poważny nie opieraj się na na dotyku bt0 bo nie wykona się ten kod jak dane przyjdą po rs

Kod:
if(bt0.val==1)
{
  b0.val=1
  b1.val=1
}else
{
  b0.val=0
  b1.val=0
}

A tym samym kierunkowskazy nie będą migać z awaryjnym to musisz oprzeć o timer


Mi działa ten kod i twój projekt nextion ale mruga tylko przycisk awaryjny


No i po trzecie temat dotyczył o kontrolkach...

Wiec by zmieniać kontrolki dajmy na to światła włacz/wyłaczone to masz dwa wyjścia albo zmiana obrazka

    Serial.print("b5.pic=");
    Serial.print("28");
    Serial.write(0xff);
    Serial.write(0xff);
    Serial.write(0xff);

i wyłączenie

Serial.print("b5.pic=");
    Serial.print("27");
    Serial.write(0xff);
    Serial.write(0xff);
    Serial.write(0xff);


Ale to zakłuci ci pracę z dotykiem i proponował by zmianę z bution na dual-state-bution ewentualnie wszystko oprzeć o timer i zmienne val.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#17
Właśnie sprawdziłem wszystko działa, jesteś najlepszy :D
Nie zamykam jeszcze wątku bo jak ogarnę sobie te kontrolki ze stycznikami to marzy mi się wykorzystać prędkościomierz ten przy motocyklu bo jest cyfrowy. Niby kupiłem czujnik szczelinowy ale byłoby dużo roboty z tym żeby on funkcjonował przy motocyklu.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości