Начал проводить замеры по разряду аккумулятора. Держит уже полтора часа. Подключён вентилятор, два мотора для более быстрой разрядки. И ЖКИ-дисплей для вывода АЦП. Разрядился только на 1 вольт. АЦП=344 при 7,5в. При 8,5 386. Делитель напряжения на резисторах в 1кОм и 7,5кОм
Sharp_right: Declare Function Sharp_a02(byval 0 As Bit) As Bit Function Sharp_a02(byval 0 As Bit) As Bit Local АЦП As Word Start Adc : АЦП = Getadc(0) 'Sharp connected for example to PA=0(ADC0) Stop Adc If АЦП < 850 Then : Sharp_a02 = 0 : Else : Sharp_a02 = 1 : End If If Sharp_a02 = 1 Then : Gosub Разворот_влево : waitms 250 : Else : Gosub Вперёд : End If End Function
Sharp_right: Declare Function Sharp_a02(byval 0 As Bit) As Bit Function Sharp_a02(byval 0 As Bit) As Bit Local АЦП As Word Start Adc : АЦП = Getadc(0) 'Sharp connected for example to PA=0(ADC0) Stop Adc If АЦП < 850 Then : Sharp_a02 = 0 : Else : Sharp_a02 = 1 : End If If Sharp_a02 = 1 Then : Gosub Разворот_влево : Else : Gosub Вперёд : End If End Function
И теперь даже, если есть препятствие серва продолжает крутится. Когда задержка была серва, останавливалась только на указанное время задержки. Мне надо сделать так чтобы пока есть препятствие робот разворачивался, а серва в этот момент стояла на месте, до тех пор пока препятствие не станет. По условию выполняется только разворот робота, а серва продолжает крутиться. Пробовал делать выход из цикла вращения сервы и остановку не помогло. Пробовал и др. варианты типо изменения переходов в подпрограммы или сделать, то что мне надо за счёт условий, но без результатно, если кто знает как мне остановить серву в момент разворота, то подскажите пожалуйста.
судя по твоему коду, ты стартуешь вперед, затем в цикле (несколько for-ов) вращаешь серву, проверяя значение АЦП (значение, снимаемое с дальномеров Шарп) и если он показывает, что дальномер "заметил" препятствие, вызываешь включение поворота и возвращаешся в цикл поворота сервы. Думаю не нужно делать то, что я подчеркнул - нужно в цикле начать снова проверять АЦП, пока он не покажет, что из "поля зрения" Шарпа изчезло препятствие (возможно следует в этом цикле проверять какой-то счетчик, чтобы не зациклиться совсем). Затем (для верности) подождать пока робот повернет еще и продолжить обычное выполнение программы (снова поехать вперед, продолжая вращать серву).