Usando o sensor de toque

O sensor de toque detecta se o botão na face do sensor está pressionado. Você pode usar um sensor de toque para detectar, por exemplo, quando o seu robô conduz em alguma coisa. Você pode também pressionar com o dedo em um sensor de toque para disparar uma ação.
O sensor de toque pode indicar se está pressionado ou não. Ele não pode medir a distância ou o grau de dificuldade que o botão está pressionado. O sensor de toque fornece dados lógicos (Verdadeiro ou Falso). A posição do botão do sensor de toque é chamada de seu Estado e é Verdadeiro se pressionada e Falso se não estiver pressionado (liberado).

O sensor de toque também pode fazer o acompanhamento de se o botão foi pressionado e liberado anteriormente. Isso é chamado de Pulsado e é útil para detectar, por exemplo, se é pressionado com o dedo. Consulte Compreendendo o pulsado para obter mais informações.
Dados do sensor de toque
O Sensor de toque pode fornecer os seguintes dados:
DadosTipoObservações
Estado LógicaVerdadeiro se o botão estiver pressionado, e Falso, se não.
Pressionado LógicaVerdadeiro, se pressionado e Falso, se não (mesmo que o Estado).
Soltar LógicaFalso, se pressionado e Verdadeiro, se não (contrário do Estado).
Pulsado LógicaVerdadeiro se o botão foi pressionado e liberado anteriormente. A próxima ocorrência Pulsado exigirá então um novo pressionar e liberar.
Exemplos usando Pressionado
Alguns exemplos de como você pode usar os dados pressionados no sensor de toque são mostrados abaixo.
Exemplo 1: Guiar até um sensor de toque ser pressionado
Este programa faz o robô andar reto para frente até um sensor de toque ser pressionado, então o robô é parado. Ele usa o bloco Espera com o modo Sensor de toque - Comparação - toque para verificar se está pressionado.
Dicas e Truques
Lembre-se de usar o modo Ligado do bloco Mover direção quando você quiser guiar enquanto espera por um sensor.
Exemplo 2: Um motor funciona sempre que um sensor de toque é mantido em (método 1)
Este programa faz com que um motor funcione sempre que o sensor de toque estiver pressionado e for mantido. O motor é parado sempre que o sensor de toque é liberado. O programa usa o bloco Comutação com o modo Sensor de toque - Comparação - toque para verificar se está pressionado. O resultado do teste é usado para escolher entre ligar ou desligar o motor. O teste é repetido continuamente em um Ciclo.
Exemplo 3: Faz a luz de estado do bloco piscar sempre que um sensor de toque é mantido pressionado
Este programa acende a luz de status em laranja e faz piscar sempre que o sensor é mantido pressionado. Ele usa o bloco do Sensor de toque no modo de Medida para obter o estado do sensor de toque. O resultado é ligado à entrada de pulso dos botões do bloco com um fio de dados lógicos.
Exemplos usando Liberado
Alguns exemplos de como você pode usar os dados liberados no sensor de toque são mostrados abaixo.
Exemplo 4: Emite um aviso sonoro em cada pressionamento do sensor de toque
Este programa reproduz um tom curto sempre que o sensor de toque é pressionado. Apenas um tom é reproduzido para cada pressionamento. O programa usa um bloco de Espera no modo do Sensor de toque- Comparação – Toque para verificar se está pressionado e depois outro bloco de Espera para esperar pela liberação antes de deixar o ciclo continuar.
Dicas e Truques
Se você excluir o Esperar pela liberação deste programa, você irá descobrir que o tom se repete sempre que o sensor de toque é mantido pressionado. Isto acontece, porque o Esperar pela liberação prosseguirá imediatamente para o próximo bloco se o sensor de toque já estiver pressionado. Experimente!
Exemplo 5: Um motor funciona sempre que um sensor de toque é mantido em (método 2)
Este programa faz com que um motor funcione sempre que o sensor de toque estiver pressionado e for mantido. O motor é parado sempre que o sensor de toque é liberado. O programa usa um bloco de Espera no modo do Sensor de toque- Comparação – Toque para esperar que o sensor pressionado inicie o motor, depois outro bloco deEspera para esperar pela liberação antes de parar o motor. O processo é repetido em um Ciclo.
Dicas e Truques
Este programa faz o mesmo que o Exemplo 2 acima, usando um método diferente.
Compreendendo o pulsado
Além de dizer a você se o botão do sensor de toque atualmente está pressionado ou liberado, o sensor de toque também acompanha se ele foi pressionado e liberado no passado, o que é chamado de pulsado. Isto torna fácil descobrir se um sensor de toque foi pressionado como um botão, sem precisar verificar constantemente se está pressionado e depois esperar pela liberação.

Quando um sensor de toque indica que foi pulsado, ele não indica o pulsado até o sensor de toque ser pressionado e liberado novamente. Isto facilita ter a certeza de que, por exemplo, cada pressionamento corresponde a uma ação que só acontece uma vez.

A tabela abaixo mostra um exemplo de onde um sensor de toque é pressionado e liberado duas vezes como uma série de etapas. A tabela mostra o resultado de um programa de verificação de Pressionado, Liberado e Pulsado após cada ação.
EtapaAçãoPressionadoLiberadoPulsado
1 Botão começa o liberadoFalsoVerdadeiroFalso
2 O botão está pressionado emVerdadeiroFalsoFalso
3 Botão é liberadoFalsoVerdadeiroVerdadeiro
4 O botão ainda está liberado, e o programa verifica o sensor de toque novamenteFalsoVerdadeiroFalso
5 O botão é pressionado uma segunda vezVerdadeiroFalsoFalso
6 O botão é mantido pressionado, e o programa verifica o sensor de toque novamenteVerdadeiroFalsoFalso
7 Botão é liberadoFalsoVerdadeiroVerdadeiro
8 O botão ainda está liberado, e o programa verifica o sensor de toque novamenteFalsoVerdadeiroFalso
Observe que quando o botão é mantido pressionado, o sensor de toque continua a indicar Pressionado sempre que o programa o verifica. Entretanto, uma vez que o botão está liberado, o sensor só indica pulsado a primeira vez que o programa verifica-o para Pulsado. O sensor não indicará Pulsado outra vez até que ele seja pressionado e liberado novamente.
Exemplos usando Pulsado
Alguns exemplos de como você pode usar os dados pulsados no sensor de toque são mostrados abaixo.
Exemplo 6: Altera o monitor quando o sensor de toque está pressionado
Este programa fará o Monitor do Bloco EV3 mostrar "Zero", depois "Um", depois "Dois", alterando o monitor sempre que o sensor de toque é pulsado (pressionado e depois liberado).
Dicas e Truques
Se você alterar o bloco de Espera por blocos neste programa para verificar se está Pressionado em vez de Pulsado, você descobrirá que o monitor passa de "Zero" diretamente para "Dois", pulando "Um". Experimente! Isto acontece, porque os blocos do Monitor executam tão rapidamente que quando o segundo teste de espera pelo pressionado acontece, seu dedo ainda está mantendo o botão pressionado da primeira etapa, então o segundo Espera por termina imediatamente. Quando está verificando o Pulsado, apenas um teste será bem sucedido para cada diferente pressionado.
Exemplo 7: Conduzir em um padrão até o sensor de toque ser pressionado
Este programa faz um robô repetir um padrão de condução de andar reto e depois girar, até um sensor de toque, que atua como um botão "Parar" no robô, ser pressionado. Após o sensor de toque ser pressionado, o robô irá parar depois da próxima virada. O programa usa um Ciclo no modo sensor de toque para repetir a condução até o sensor de toque ser pulsado (pressionado e depois liberado).
Dicas e Truques
Se você experimentar este programa usando o Pressionado em vez do Pulsado, descobrirá que pressionar o sensor de toque normalmente não faz com que o robô pare. Experimente! Isto acontece, porque o ciclo faz apenas uma breve verificação do sensor depois dos dois blocos de Movimento estarem concluídos. Se você pressionar e liberar o sensor enquanto os blocos de Movimento estão funcionando, o estado Pressionado não será visto. Usando o Pulsado, o sensor de toque relembra que foi pressionado e liberado anteriormente.
Modos e blocos do sensor de toque
A tabela abaixo mostra todos os blocos e modos de programação que você pode usar com o sensor de toque.
BlocoModoUso
EsperaSensor de toque - ComparaçãoEsperar que um Sensor de toque seja Pressionado, Liberado ou Pulsado.
EsperaSensor de toque - AlteraçãoEspera que o estado do sensor de toque mude.
CicloSensor de toqueRepete uma sequência de blocos até que o sensor de toque seja Pressionado, Liberado ou Pulsado.
ComutaçãoSensor de toqueEscolhe entre duas sequências de blocos dependendo se o sensor de toque está Pressionado ou não, Liberado ou não, Pulsado ou não.
Sensor de toqueMedidaObtém o atual estado do sensor de toque (Pressionado ou não) em um fio de dados lógicos.
Sensor de toqueComparaçãoVerifica se o sensor de toque está Pressionado, Liberado ou Pulsado e obtém o resultado em um fio de dados lógicos.
Registro de dadosConsulte o Registro de dados.
Tocar
Links rápidos