Ir ao conteúdo
  • Cadastre-se

Qual a diferença da programação entre arduino e pic em C?


Posts recomendados

Olá, como ja venho postando minhas questões no fórum, espero que vocês possam me ajudar novamente.

Bom, estou fazendo um tcc e nele irei usar um HC SR04(Sensor ultra sonico) que pode ser programado por pic ou arduino. Eu achei uma programação relacionada com o que terei que fazer, porém ela esta programada para arduino, queria saber se tem diferença, pois talvez usarei algumas linhas de programação como auxilio para o meu trabalho.

Irei programar um PIC 18F4550, quero fazer com que o pic libere a passagem de tensão em uma de suas portas apenas quando o sensor detectar uma interrupção no seu campo referente a distancia programada, no caso do código 20 a 60.

Aqui estão as linhas de código.

 

//Programa : HC-SR04 - Distancias minima e maxima


//Autor : Adilson Thomsen

#include

//Define os pinos do Arduino ligados ao Trigger e Echo
#define PINO_TRG 7
#define PINO_ECHO 6

//Distancias em centimetros
float distancia_minima = 20;
float distancia_maxima = 60;

//Pino a ser acionado em caso de deteccao
int pino_saida = 10;

//Inicializa o sensor ultrasonico nos pinos especificados
Ultrasonic ultrasonic(PINO_TRG, PINO_ECHO);

void setup()
{
//Inicializa a serial
Serial.begin(9600);
pinMode(pino_saida, OUTPUT);
}

void loop()
{
//Variaveis para guardar os valores em
//cm (cmSec) e polegadas (inMsec)
float cmMsec, inMsec;

//Le os valores do sensor ultrasonico
long microsec = ultrasonic.timing();
//Atribui os valores em cm ou polegadas as variaveis
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);

if (cmMsec > distancia_minima && cmMsec < distancia_maxima)
{
//Aciona a porta de saida
digitalWrite(pino_saida, HIGH);
}

delay(1000);
}

Link para o comentário
Compartilhar em outros sites

@André Sampaio,

 

São duas coisas a considerar : primeiro, os compiladores C são bem diferentes. Na verdade , a linguagem de programação nativa do Arduíno é bem pareçida com C, mas não é C !

 

Segunda, o hardware. Os pinos e respectivas funções são diferentes entre uma família e a outra. Terá de dar uma boa lida e achar os pinos com funcões semelhantes no Arduíno e no Pic.

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@André Sampaio,

 

São duas coisas a considerar : primeiro, os compiladores C são bem diferentes. Na verdade , a linguagem de programação nativa do Arduíno é bem pareçida com C, mas não é C !

 

Segunda, o hardware. Os pinos e respectivas funções são diferentes entre uma família e a outra. Treá de dar uma boa lida e achar os pinos com funcões semelhantes no Arduíno e no Pic.

 

Paulo

Nossa Paulo obrigado por me lembrar dos pinos, tinham me dito isso a muito tempo e eu esqueci completamente, vou verificar agora mesmo.

Obrigadão!

Link para o comentário
Compartilhar em outros sites

Só para complementar a observação do amigo, depende também de qual compilador você vai usar, eu particularmente uso o XC8 junto no mplab x, ele usa um C mais ANSI, o que deixa o código bem mais portável, verifique também as rotinas de delay, e registradores. no seu código do arduino ele esta usando uma lib serial, deve-se atentar a isso também, pois as funções de R/W e init são um pouquinho diferente.

Tem também a forma de setar os bits (digitalWrite) também muda. qualquer duvida estamos ai.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...