B4R Question About your SR04 sensor + servo motor project

Cesar_Morisco

Active Member
Oi Vai Khandangoll
Sobre o seu projeto de sensor SR04 + servo motor
Estou usando o servo motor para o sensor e um laser para simular arma
Ele funciona no esp8266, mas quando o sensor detecta o alvo, o servo não para, ele diminui o curso
Você poderia me ajudar?
Gostei +
[CÓDIGO lang="b4x" title="B4R"] Sub Process_Globals
Série Pública1 Como Série
'Wi-Fi privado como ESP8266WiFi
Radarservo Público Como Servo
ESP privado como D1Pins
Ângulo público como byte
Público FirstAngle como byte
Público Ultra As SRF04
Espaço de destino público como Int
Público maxSpace As Int=20
RadarDelay público como byte=10
Alvo públicoDetectar como booleano
RadarservoPin público como pino
Privado Led como Pin
Temporizador privado como temporizador

Sub final

Sub AppStart Privado
Serial1.Initialize(115200)
Log("AppStart")
Led.Initialize(ESP. D4,Led.MODE_OUTPUT)
'Led.DigitalWrite(Falso)

RadarservoPin.Initialize(ESP. D1,RadarservoPin.MODE_OUTPUT)
Radarservo.Attach(ESP. D1)
Timer.Initialize("Sensor",5)
Timer.Enabled=(Verdadeiro)

Log("Servo milisecound é ",Radarservo.ReadMicroseconds)
FirstAngle=Radarservo.read
Log("Ângulo de Curreny = ",FirstAngle)
Radarservo.Write (-1 * ângulo)

« SENSOR UTRASONICO
Ultra.Initialize(ESP. D2,ESP. D3) ' Pinos Trig e Eco
Caso Normal
Sub final

Sub Sensor
Faça enquanto for verdade
TargetDetect=Falso
ângulo=20
Do While ângulo<=160 E ângulo>=20
TargetSpace=Ultra.GetDistance
'Log("D=",ângulo, "-R=",TargetSpace)
Se TargetSpace<maxSpace então
TargetDetect=True
Caso de guerra
LockTarget
Fim Se
Radarservo.Write (ângulo)
ângulo=ângulo+1
Atraso (RadarDelay)
Laço

ângulo=160
Do While ângulo <=160 E ângulo>=20
TargetSpace=Ultra.GetDistance
'Log("D=",ângulo, "-R=",TargetSpace )
Se TargetSpace<maxSpace então
TargetDetect=True
Caso de guerra
LockTarget
Fim Se
Radarservo.Write (ângulo)
ângulo=ângulo-1
Atraso (RadarDelay)
Laço

Se TargetDetect=True, então
Caso de guerra
Mais
Caso Normal
Fim Se
Laço

Sub final

público Sub WarCase
Led.DigitalWrite(False) » LED LIGADO
Radarservo.Write (ângulo)
Sub final

público Sub NormalCase
Led.DigitalWrite(True) » LED DESLIGADO
Sub final

público Sub LockTarget
Radarservo.Write (ângulo)
Log(ângulo)
Sub final
[/CÓDIGO]
 

Attachments

  • 20240518_155549.jpg
    20240518_155549.jpg
    87.6 KB · Views: 100
Top