Fórum

Palavra-chave
Destaque/Sem destaque
Resolvida/Não Resolvida
Aberta/Encerrada
0 votos
1k visualizações

Olá, boa noite!

Sou novo aqui no forum!

Estou passando um codigo de C para python e estou tendo algumas dificuldades.

Basicamente o codigo faz a comunicação via usb com um radio.

O comando que tenho duvida são:

    ioctl(fd,TIOCMGET,&status);
    status |= ( TIOCM_DTR | TIOCM_RTS );
    ioctl(fd,TIOCMSET,&status);
    usleep(500000);

como “traduzir” para o python?

Desde já agradeço!

  • Rodrigo Lasmar perguntada 4 anos atrás
  • última atividade 4 anos atrás
0 votos
667 visualizações

Esse ano estou concluindo o curso de Eng. Eletrônica e para o ano que vem, gostaria de continuar com uma pós-graduação na área de eletrônica embarcada. Porém, estou com dificuldades para encontrar instituições de ensino para fazer isso. Encontre a Unisal de Campinas, que possui uma especialização em Eletrônica Embarcada. Então,gostaria de saber se alguém sabe me dizer se é uma boa opção e se não, qual seria? Obrigado

0 votos
425 visualizações

Ola Pessoal, eu estava tentando usar o MPlab X Code configurator para simplificar alguns codigos, quando tentei aceder a mesma, veio a seguinte caixa de erro! que devo fazer para solucionar isso!
Desculpem-me se o Post for repetido.
Erro no Mcc

0 votos
598 visualizações

Olá
Como faço para configurar o fonte para a interface – os caracteres são muito pequenos.
Obrigado

0 votos
0 respostas
376 visualizações

Pessoal, tenho um projeto que utilizará um mouse como odômetro. Baseado no site abaixo:
[url]http://www.instructables.com/id/Optical-Mouse-Odometer-for-Arduino-Robot/[/url]

O código utiliza a biblioteca PS2Mouse.h desse endereço:
[url]https://github.com/jazzycamel/PS2Mouse[/url]

Funciona tudo bem, consigo ler os dados do mouse, porém a variável me retorna um valor máximo de +-127 (8 bits), com uma velocidade de movimentação do mouse muito lenta, ou seja, está muito sensível, a variável “estoura” se movimentar um pouco mais rápido, tentei alterar as bibliotecas para 16 bits e fazer com que a leitura não “estourasse”, porém meu conhecimento limitado não me ajudou. Alguém pra me dar uma luz? Meu maior problema foi entender o código… Agradeço qualquer ajuda.

PS2Mouse.h:

[code]#ifndef PS2_H

define PS2_H

include <Arduino.h>

class PS2Mouse {
public:
PS2Mouse(int data, int clk);
void write(uint8_t data);
uint8_t read(void);

void begin(void);
void getPosition(uint8_t &stat, int &x, int &y);

private:
int _ps2clk;
int _ps2data;
void golo(int pin);
void gohi(int pin);
int twos(uint8_t value, bool sign);
};

endif // PS_2_H

[/code]

PS2Mouse.cpp:

[code]#include “PS2Mouse.h”

PS2Mouse::PS2Mouse(int clk, int data){
_ps2clk=clk;
_ps2data=data;
gohi(_ps2clk);
gohi(_ps2data);
}

void PS2Mouse::write(uint8_t data){
uint8_t parity=1;

gohi(_ps2data);
gohi(_ps2clk);
delayMicroseconds(300);
golo(_ps2clk);
delayMicroseconds(300);
golo(_ps2data);
delayMicroseconds(10);
gohi(_ps2clk);

while(digitalRead(_ps2clk)==HIGH);

for(int i=0; i<8; i++){
if(data&0x01) gohi(_ps2data);
else golo(_ps2data);
while(digitalRead(_ps2clk)==LOW);
while(digitalRead(_ps2clk)==HIGH);
parity^=(data&0x01);
data=data>>1;
}

if(parity) gohi(_ps2data);
else golo(_ps2data);

while(digitalRead(_ps2clk)==LOW);
while(digitalRead(_ps2clk)==HIGH);

gohi(_ps2data);
delayMicroseconds(50);

while(digitalRead(_ps2clk)==HIGH);
while((digitalRead(_ps2clk)==LOW)||(digitalRead(_ps2data)==LOW));

golo(_ps2clk);
}

uint8_t PS2Mouse::read(void){
uint8_t data=0, bit=1;

gohi(_ps2clk);
gohi(_ps2data);
delayMicroseconds(50);
while(digitalRead(_ps2clk)==HIGH);

delayMicroseconds(5);
while(digitalRead(_ps2clk)==LOW);

for(int i=0; i<8; i++){
while(digitalRead(_ps2clk)==HIGH);
bit=digitalRead(_ps2data);
while(digitalRead(_ps2clk)==LOW);
bitWrite(data,i,bit);
}

while(digitalRead(_ps2clk)==HIGH);
while(digitalRead(_ps2clk)==LOW);
while(digitalRead(_ps2clk)==HIGH);
while(digitalRead(_ps2clk)==LOW);

golo(_ps2clk);

return data;
}

void PS2Mouse::begin(void){
write(0xFF);
for(int i=0; i<3; i++) read();
write(0xF0);
read();
delayMicroseconds(100);
}

void PS2Mouse::getPosition(uint8_t &stat, int &x, int &y){
write(0xEB);
read();
stat=read();
uint8_t _x=read();
uint8_t _y=read();

bool negx=bitRead(stat,4);
bool negy=bitRead(stat,5);
x=twos(_x, negx);
y=twos(_y, negy);
}

void PS2Mouse::golo(int pin){
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
}

void PS2Mouse::gohi(int pin){
pinMode(pin, INPUT);
digitalWrite(pin, HIGH);
}

const int m=0x100;
int PS2Mouse::twos(uint8_t value, bool sign){
int v=(int)value;
if(sign) v|=0xFF00;
return v;
}[/code]

0 votos
1k visualizações

Olá pessoal,

Estou tentando colocar o conversor ADC max11043 para funcionar, mas ele nunca apresenta as tensões corretas. Quando coloco uma tensão fixa de 3V sobre os canais do ADC, a cada leitura ele apresenta valore diferentes. Pode ser problema de referência?

Circuito: introduza a descrição do link aqui

0 votos
5k visualizações

Bom dia pessoal,

É possível utilizar o arduino para enviar comandos com saída 4-20ma?

0 votos
604 visualizações

void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT); // LED on pin 13 of UNO
pinMode(10, OUTPUT);
}

char rx_byte = 0;

void loop() {
if (Serial.available() > 0) { // is a character available?
rx_byte = Serial.read();
switch (rx_byte) {
case ‘1’:
digitalWrite(10, HIGH);
delay (100);
digitalWrite (10, LOW);
delay (100);

Serial.println(“LED LIGADO”);
break;
case ‘2’:
digitalWrite(10, LOW);
Serial.println(“LED DESLIGADO”);
break;
case ‘3’:
Serial.println(“——- MENU ——-“);
Serial.println(“1. LIGADO.”);
Serial.println(“2. DESLIGADO.”);
Serial.println(“3. MENU.”);
Serial.println(“——————–“);
}
switch (rx_byte) {
case ‘7’:
digitalWrite(13, HIGH);
Serial.println(“LIGADO”);
break;

case ‘8’:
digitalWrite(13, LOW);
Serial.println(“DESLIGADO”);
break;

case ‘9’:
Serial.println(“——- MENU ——-“);
Serial.println(“1. LED ARDUINO LIGADO.”);
Serial.println(“2. LED ARDUINO DESLIGADO.”);
Serial.println(“3. MENU ARDUINO.”);
Serial.println(“——————–“);

} // end: switch (rx_byte)
} // end: if (Serial.available() > 0)
}

Não consigo fazer ele fica led piscando
pois ele pisca 1x e desliga
alguem sabe como fazer ele ficar piscando?

  • Michael Silva perguntada 4 anos atrás
  • última atividade 4 anos atrás
0 votos
914 visualizações

Ola Pessoal eu gostaria de vossa ajuda.
Eu sou iniciante a programar micro-controladores, e estou programando o micro de 8bits da familia 18f no Mplab x, e estou tendo dificuldades nisso.
EU fiz o código para a livraria do C18, compilou sem erro, mas não está simulando no Proteus.
Por isso tentei mudar para livraria XC8, mas essa livraria n encontrei a biblioteca para LCD e nem Biblioteca pra Delays, passei pela google, dei varias pesquisadas, e nada parece tar resolvendo o meu problema, gostaria que pudessem me ajudar a solucionar esse problema:
Ai tem o código abaixo para o C18.

#include <p18f4550.h>
#define _XTAL_FREQ = 20000000
#pragma config MCLRE = OFF, LVP = OFF, WDT = OFF, PLLDIV = 5, CPUDIV = OSC1_PLL2
#pragma config FOSC = HS, PBADEN = OFF, XINST = OFF
#include <delays.h>
#include <xlcd.h>

void DelayFor18TCY( void )
{
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
  Nop();
}
void DelayPORXLCD (void)
{
  Delay1KTCYx(75); // Delay of 15ms
                   // Cycles = (TimeDelay * Fosc) / 4
                   // Cycles = (15ms * 20MHz) / 4
                   // Cycles = 75,000
  return;
}
void DelayXLCD (void)
{
  Delay1KTCYx(25); // Delay of 5ms
                   // Cycles = (TimeDelay * Fosc) / 4
                   // Cycles = (5ms * 20MHz) / 4
                   // Cycles = 25,000
  return;
}
void Init_lcd(void){
    OpenXLCD( EIGHT_BIT & LINES_5X7 );
    while( BusyXLCD() );
    WriteCmdXLCD( EIGHT_BIT & LINES_5X7 );
    WriteCmdXLCD( BLINK_ON );
    WriteCmdXLCD( SHIFT_DISP_LEFT );
}

void main(void) {
    TRISD = 0x00;
    OSCCONbits.IRCF=0b1110;
    OSCCONbits.SCS=0b00;
    ADCON1bits.PCFG0=0b0000;

    Init_lcd();
    putrsXLCD( "Hello World" );
    SetDDRamAddr(0x40);
    while(1){
    LATDbits.LATD0 = 0xff;
    Delay10KTCYx(75);
    LATDbits.LATD0 = 0x00;
    Delay10KTCYx(75);
    }

}

Poderiam me ajudar por favor!

Mostrando 1 - 10 de 369 resultados