Tengo una duda con un sensor sharp a un pic16f873a

#1
como puede encender un motor con un sensor sharp en mikro C
alguien me podria dar un ejemplo x favor
 
#2
pues uno de esos sensores que tipo de respuesta nos da analoga o digital
si es digital lo debes conectar a una pata del pic y configurarlo como entrada
pero si es analoga usando el ADC
 
#3
es un sensor analogico como lo puedo configurar? es-que bueno yo lo estoy poniendo asi
void main(void)
{


TRISA = 0x01; // sensor
PORTA = 0;
trisc =0x00; //led
portc = 0x00;

inicio:
if(porta && 0x01)
{
portc = 0x01;
}
else
portc = 0x00;

{goto inicio;}
}

segun yo no-se si este-bien o mal pero para encender un motor se-puede hacer con el-sensor sharp sin ponerle alguna distancia o es necesario ponerle distancia?
 
Última edición por un moderador:
#5
Lo que no entiendo es como se configura el adc del pic16f873a estoy empezando y ya hice muchos programas y ahorita se me ocurrió hacerlo con sharp pero no-se como configurar el adc y ni como-se pondrían las distancias
 
Última edición por un moderador:
#6
Hola amigos, tengo un problema con el sensor sharp 2y0a21 que mide de 10 a 80cm, quiero accionar algo como motores, leds o u otra cosa dependiendo a la distancia asignada. Pero no logro hacer la comparacion en el codigo para el pic16f877a.
El compilador ó los compiladores que esoy utilizando son MiKro C y MicroCode Studio.
espero y puedan ayudarme.
estoy intentando hacer un Robot levantador de objetos
 
#7
Bueno, ante todo muy buenas noches.
El inconveniente es el siguiente. Estoy utilizando un sensor SHARP 2Y0A21 el cual tiene un rango de 10-80 cm, y quiero que cuando el objeto se encuentre a los 14 cm envíe un 1 al pin D0 del microcontrolador (16f877a)
Espero su ayuda, de ante mano gracias.
Estuve intentando con este código y el esquema hecho en proteus.

Código:
#include <16f877a.h>
#device adc=10
#fuses xt,nowdt
#use delay(clock=4000000)
#define LCD_DB4   PIN_B4
#define LCD_DB5   PIN_B5
#define LCD_DB6   PIN_B6
#define LCD_DB7   PIN_B7
#define LCD_RS    PIN_B2
#define LCD_E     PIN_B3
#include <lcd1.c>
float r,v;


void main(){

lcd_init(); //Inicializa la pantalla lcd
setup_adc_ports(an0);//Selecciona el puerto a realizar la conversion
setup_adc(adc_clock_internal);//Selecciona el reloj de conversion
set_adc_channel(0);//Selecciona el canal de conversion

inicio:
r=read_adc();//Conversion A/D la almacena en r en un binario de 0-1024
v=(1/(r/1024))*4.5;//Convierte a cm
lcd_gotoxy(1,1);//Posiciona el cursor en la posicion 1,1 de la pantalla lcd
printf(lcd_putc,"dist. = %.2f cm,", v);//Imprime
delay_ms(50);//Demora

if(v==14){
output_high(pin_b0);
}
goto inicio;

}
 

Adjuntos

Última edición por un moderador:
#8
Bueno, buenas tardes. El inconveniente es el siguiente; que no sé cómo transformar esta fórmula al lenguaje de programación para CCS Compiler.
Bueno, la fórmula es la siguiente: distancia(cm) = 16746,73 · Vout^(-1,2134)
Espero que me den pistas o lo mejor, como poder realizarlo.
Bueno, ante todo, gracias.
 
Última edición por un moderador:

Temas similares

Arriba