• 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 odwiedzin
#1
Witam. Mam problem ze znalezieniem błedu w programie.
Leonardo+ czujnik HC-SR04+lcd 4x20 z konwerterem i2c. (Echo podlaczone do 4, trig do pinu 3).
W szeregowym monitorze wyswietlane jest tylko 0. Czujnik -sprawny- jest sprawdzony na innym programie.

Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 3
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

int TRIG=3;
int ECHO=4;

int pulseTERAZ=0;
int pulseWCZESNIEJ;
int counter=-1;
int counterWCZESNIEJ;


void setup()
{
lcd.begin (20,4);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);

}
void loop()
{
digitalWrite(TRIG, HIGH);
delayMicroseconds(4);
digitalWrite(TRIG, LOW);

pulseTERAZ=pulseIn(ECHO, HIGH);

if(counter==-1)
{
  pulseWCZESNIEJ=pulseTERAZ;
  counter++;
}

Serial.print(abs(pulseTERAZ-pulseWCZESNIEJ));
Serial.print("\n");

if(abs(pulseTERAZ-pulseWCZESNIEJ)>200)
{
  counter++;
}
pulseWCZESNIEJ=pulseTERAZ;

lcd.setCursor(0,0);
lcd.print("ODWIEDZIN:   ");
lcd.setCursor(11,0);
lcd.print(counter/2);
delay(500);

}
 
Odpowiedź
#2
Witaj przetestowałem twój licznik na takim samym module   wyswietla i liczy dobrze .  zakomentowałem  tylko kod ktory wyśwetla na lcd bo niesty nie posiadam takiego .
Czy coś  jeszcze masz podłączone do pinu 3 ?  


Kod:
//#include <Wire.h>
//#include <LiquidCrystal_I2C.h>
//#define BACKLIGHT_PIN 3
//LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

int TRIG=3;
int ECHO=4;

int pulseTERAZ=0;
int pulseWCZESNIEJ;
int counter=-1;
int counterWCZESNIEJ;


void setup()
{
//lcd.begin (20,4);
//lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
//lcd.setBacklight(HIGH);
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);

}
void loop()
{
digitalWrite(TRIG, HIGH);
delayMicroseconds(4);
digitalWrite(TRIG, LOW);

pulseTERAZ=pulseIn(ECHO, HIGH);

if(counter==-1)
{
 pulseWCZESNIEJ=pulseTERAZ;
 counter++;
}

//Serial.print(abs(pulseTERAZ-pulseWCZESNIEJ));
//Serial.print("\n");

if(abs(pulseTERAZ-pulseWCZESNIEJ)>200)
{
 counter++;
}
pulseWCZESNIEJ=pulseTERAZ;

//lcd.setCursor(0,0);
//lcd.print("ODWIEDZIN:   ");
//lcd.setCursor(11,0);
Serial.println(counter/2);
delay(500);

}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości