gl gl en gl en gl gl gl gl gl gl gl gl gl gl gl it gl sv ru ru ru gl es gl gl gl gl gl gl gl gl gl gl gl es gl gl gl gl en gl gl gl en en pt gl gl gl gl gl gl gl gl it fr gl gl gl es es gl gl gl gl gl fr gl en en gl en en es gl pt en en gl gl es es es en gl gl gl gl gl gl gl gl it it gl en en gl fr gl gl gl gl gl es zh fr gl gl gl gl gl gl en it gl ca pt gl it gl gl es gl gl en en gl en en en en gl en en en en en en en en en en en gl gl en en en en en en en gl gl en en en en en en gl gl
Contador e cronómetro – mClon Robot
Nesta sección imos programar un display 7 segmentos de 4 díxitos. Pódenos servir para visualizar o valor dunha variable, contar obxectos detectados, cronometrar, … Na páxina “alerón cronómetro” podes ver como se conecta e monta nun alerón co display incorporado.
Para programalo con mBlock para mBot debes conectalo aos pins 11 e 12, pero co IDE de Arduino podes usar outros pins, por exemplo CLK no pin 2 e DIO no pin 3, como imos facer aquí.
Imos facer un programa sinxelo para ver que todo funciona correctamente.
Ao premer no pulsador deberían aparecer os números 0, 1, 2 e 3 no display. Se é así todo está correcto. Se non revisa as conexións.
Agora imos visualizar no display o número de veces que prememos no pulsador. Comeza o programa do mesmo xeito que antes e no inicio do sketch creamos unha variable “conta” int conta = 0;  para almacenar o número de veces que prememos no pulsador.
Por exemplo, para o número 125:
Agora imos ir contando cada vez que prememos no pulsador e amosando os datos no display
void loop() { if ( analogRead(A7)<100 ) { // Cando o pulsador está premido while(analogRead(A7)<100); // Agarda mentres o pulsador esta premido conta++; //Incrementa o contador calculaDixitos(conta); // visualizamos o valor no display } }
Conta latas: No programa de ir por unha liña e ir rodeando ou apartando latas vai facendo a conta das que atopa.
Límite de latas: No programa anterior fai que cando atope 3 latas pare e emita unha melodía.
Neste exemplo imos iniciar o cronómetro cando premamos o pulsador, e paralo cando volvamos pulsalo.
No inicio debemos crear unhas variables que nos permitan contar o tempo (tempoActual e tempoAnterior) e unha variable que nos indique se o cronómetro está activado ou o reiniciamos (estadoCrono)
Como imos contar o tempo, no setup imos activar os puntos que nos separen os minutos dos segundos (crono.point(POINT_ON); )
// Librería #include   /**** Declaración de variables **/ // medición do tempo int tempoActual; // A medida do tempo cando a miramos int tempoAnterior; int estadoCrono=0; // Variable para a visualización do cronómetro // Display 4 díxitos #define CLK 3 // Pins aos que está conectado o display #define DIO 2 TM1637 crono(CLK,DIO); // Poñémoslle o nome "crono" ao noso display int8_t Digits[] = {0,0,0,0} ; // Array de 4 díxitos que queremos amosar /** Configuración **/ void setup() { crono.set(); // Inicializamos crono.init() ; crono.point(POINT_ON); // Acende os puntos }
Despois da función de calculaDixitos engadimos unha nova función de pasar de número a tempo calculando minutos e segundos
/** Funcións **/ // Función para clacular díxitos void calculaDixitos(int numero){ Digits[3] = numero%10; Digits[2] = (numero%100)/10; Digits[1] = (numero%1000)/100; Digits[0] = numero/1000; crono.display(Digits); } // Función para pasar de número a tempo en min e s void calculaTempo(int n){ int segundos = n % 60 ; int minutos = n / 60 ; int t = minutos * 100 + segundos ; calculaDixitos(t) ; }
E agora no loop cando prememos no pulsador, se o cronómetro está desactivado iniciámolo e amosamos o valor do tempo, e se o cronómetro está activado ao premer no pulsador parámolo.
void loop() { tempoActual= millis()/1000; // É o tempo actual en s transcorrido desde o inicio. if (analogRead(A7)<100 && estadoCrono==0) { while(analogRead(A7)<100); tempoAnterior= tempoActual; // Iniciamos o cronómetro estadoCrono=1; } if (estadoCrono == 1){ // Mostra o cronómetro cando está activado int datoCrono = tempoActual-tempoAnterior; calculaTempo(datoCrono); } if (analogRead(A7)<100 && estadoCrono==1){ // Paramos a visualización do cronómetro while(analogRead(A7)<100); estadoCrono=0; } }
Décimas de segundo: No programa anterior estamos contando segundos, pero nunha carreira imos necesitar máis precisión. Modifícao para que amose décimas de segundo.
Ultrasón: Modifica o programa anterior para que o cronómetro arranque cando prememos no pulsador e pare cando o sensor ultrasónico atope un obxecto a menos de 10 cm.
Carreira de velocidade: No programa de ir por unha liña pon unha lata na meta para que o robot pare cando a atope. Nese momento o display debe amosar o tempo que tardou en chegar.
Neste vídeo podes ver o cronómetro funcionando. O sensor ultrasónico está situado nun lateral co soporte do resolve-labirintos.
Xa teño un alerón-cronómetro. A documentación estará en breve en https://t.co/z7bMZdES2v pic.twitter.com/8Ga7k6D8mc
— mClon (@mClonRobot) 19 de febreiro de 2019
O control dos motores
Os sensores IR de liña
O sensor de luz ou LDR
Matriz de leds 8×8
O robot en movemento
Seguir unha liña no chan
Programación co IDE de arduino
O IDE de Arduino
Probas de funcionamento IDE
O control dos motores
Luces de cores – IDE
Texto, figuras e debuxos
Ver a política de privacidade
O teu estado actual: Non se deu consentimento. Xestiona o teu consentimento.
Proxecto de A Industriosa
Copyright © 2022 mClon Robot. Todos os dereitos reservados.
Tema: ColorMag por ThemeGrill. Funciona con WordPress.
Usamos cookies para o correcto funcionamento do sitio web. Ao facer clic en Aceptar, aceptas o uso das cookies necesarias. Podes xestionar as cookies que queres activar.
Ler máis - Cookie Settings
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
NID cookie, set by Google, is used for advertising purposes; to limit the number of times the user sees an ad, to mute unwanted ads, and to measure the effectiveness of ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.