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]
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]