Fórum

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

Olá Pessoa,

Sou novo no mundo do arduino e estou com um grande problema para criar um sistema de leitura de codigo de barras.

Tenho que realizar a leitura de umas etiquetas e transmitir para o meu sistema, porém nao sei nem por onde começar.

Já descobri como fazer para o leitor funcionar e exibir em um display, porém nao sei exatamente como fazer para transmitir o codigo de barras lido para o meu sistema.

Pode ser até em um arquivo txt ou algo do tipo.

Poderiam me ajudar a dar uma luz?

  • Felipe Mazzoni perguntada 3 anos atrás
  • última atividade 3 anos atrás
0 votos
3k visualizações

Colegas.
Estou desenvolvendo um projeto com o PIC18F26J50.

É um projeto legado onde estou implementando o firmware e não tenho que trabalhar com o hardware que me foi dado.

Basicamente é um sistema que realiza a leitura de dois sensores analógicos, aplica um filtro e disponibiliza esses dados através de um protocolo proprietário sobre RS-485.

Como estou sem o hardware em mãos (mais essa), estou realizando os testes de algoritmos em uma uStart (do nosso amigo Marcos Ribeiro), mesmo que seja um processador diferente, mas estou fazendo…

A minha pergunta é relacionada ao clock. O hardware que será construído não utiliza cristal. Estou utilizando o oscilador interno. Ontem fui medir indiretamente a frequência de operação do PIC, utilizando um interrupção de timer e um gpio, e notei uma discrepância de mais ou menos 20% na frequência de geração da interrupção do Timer0. Conferi toda a configuração do mesmo e está correto.

Gostaria de saber de vocês qual é a precisão do oscilador interno e se este tipo de configuração é adequada a um ambiente com um considerável spam de temperatura e que tenha necessidade de comunicação via interface serial, que pode ser bem sensível à variações de clock.

Cheguei a ler sobre isso no datasheet e a impressão que tive é de que não teria muitos problemas.

Ontem ao medir os tempos e perceber o desvio da frequência observada através da interrupção em relação ao esperado, fiquei ressabiado.

Muito obrigado pela ajuda!

  • Rafael Dias perguntada 4 anos atrás
  • última atividade 3 anos atrás
0 votos
6k visualizações

Prezados bom dia!

Estou a alguns dias sofrendo com isto ja!

Preciso fazer a leitura de uma celula de carga com o Arduino.
Segue link da célula que estou utilizando
http://www.iwm-brasil.com.br/spl-celula-de-carga-tipo-single-point/?txt_friendemail&txt_friendmessage&sendlink=http%3A%2F%2Fwww.iwm-brasil.com.br%2Fpor-familia-celulas-de-carga%2F
O modelo que tenho é de 10KG, e estou alimentando a mesma com uma bateria de 9V.

Li em outros foruns que devo utilizar um amp op para fazer a leitura diferencial entre V+ e V- da celula, e jogar o Vout na entrada analogica do arduino. Utilizei um TL074, com ganho de 1000, e quanto tento ler no arduino, a entrada simplesmente nao varia.
Montei um amp op instrumental utilizando 3 TL072 e tambem nao obtive resultados satisfatorios…
Quando coloquei as entradas em um osciloscopio, vi que a diferença entre elas varia quando é aplicada força, entao acredito que nao seja problema na celula.

Alguma luz?

Obrigado!

0 votos
1k visualizações

Olá Pessoal, alguém teria uma rotina pra leitura de uma i2c ? tenho um sensor de pressão I2c endereço 0x28 preciso ler de tempos em tempos com um pic 18F452.
Desde já fico agradecido.

  • Anselmo57 perguntada 2 anos atrás
  • última atividade 2 anos atrás
1 voto
2k visualizações

introduza a descrição da imagem aqui
Olá pessoal estou vendendo um kit de desenvolvimento para FPGA da Xilinx Spartan 3AN (HW-SPAR3A-SK-UNI-G) . Comprei para estudar e fazer alguns projetos em casa. É possível rodar linux embarcado nele com rede ethernet etc.. Está em ótimo estado!

Mais informações sobre o kit é só acessar: http://www.xilinx.com/products/boards-and-kits/hw-spar3a-sk-uni-g.html

Valor: R$180,00.

0 votos
1k visualizações

Tenho um driver (“mcc.ko”) gerado em uma versão de linux diferente da qual preciso utilizá-lo. Minha plataforma é baseada no SoC VF61 da Toradex.

Segue abaixo alguns dados para auxiliar na análise:
[email protected]:/lib/modules# ls
4.0.2-v2.4b1+git+g3dc77db 4.1.2-14235-g9822d66-dirty

[email protected]:/lib/modules# uname -a
Linux colibri-vf 4.1.2-14235-g9822d66-dirty #57 Wed Jul 6 16:07:53 BRT 2016 armv7l GNU/Linux

[email protected]:/lib/modules# modprobe –force-vermagic mcc.ko
modprobe: FATAL: Module mcc.ko not found.
[email protected]:/lib/modules#

[email protected]:/lib/modules# modinfo 4.0.2-v2.4b1+git+g3dc77db/extra/mcc.ko
filename: /lib/modules/4.0.2-v2.4b1+git+g3dc77db/extra/mcc.ko
license: GPL
srcversion: FAB13EA48F3F761DECF7F83
depends:
vermagic: 4.0.2-v2.4b1+git+g3dc77db mod_unload modversions ARMv7 p2v8
[email protected]:/lib/modules#

A pasta “lib/modules’ contem os drivers de duas versões do kernel. O módulo “mcc.ko” está presente apenas na pasta correspondente a versão “4.0.2…”, e o kernel em execução é “4.1.2…”. Como podemos observar, o comando “modprobe” não consegue localizar o arquivo “mcc.ko” (acredito que ele procure apenas na pasta correspondente a versão “4.1.2…”.). Tentei executar o “modprobe” com o nome completo incluindo o path e tentei copiando o módulo “mcc.ko” para a pasta correspondente a versão “4.1.2”, e em todos os casos recebo a resposta “mcc.ko not found”.

Como tratar esta questão?

1 voto
3k visualizações

Pessoal, estou procurando um Osciloscópio usado para fins didáticos em um laboratório. Tem que estar em boas condições e funcional :), não me importo se for antigo ou com poucos recursos.

Alguém está vendendo um? Conhece algum lugar que eu possa procurar?

Obrigado!

0 votos
2k visualizações

bom dia pessoal!!!

sou um bocado novo no arduino e tenho uma duvida ou como fazer 1 pwm que tem que ser um espelho do outro….adoraria que alguem me ajuda se com os melhores cumprimentos

//#include “avr/pgmspace.h”

// table of 256 sine values / half sine period / stored in flash memory
PROGMEM prog_uchar sine256[] = {
0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,
0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3,
0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,
0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51,
0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,
0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23,
0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c,
0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c
};

//#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
//#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))

double dfreq;
// const double refclk=320000; // =16MHz / 50Hz
const double refclk=312500; // measured

// variables used inside interrupt service declared as voilatile

volatile byte icnt; // var inside interrupt

volatile byte icnt1; // var inside interrupt

volatile byte c4ms; // counter increment

volatile unsigned long phaccu; // phase accumulator

volatile unsigned long tword_m; // dds tuning word m

boolean toggle1 = 0;

void setup()
{
pinMode(9, OUTPUT); // sets the digital pin as output
pinMode(10, OUTPUT); // sets the digital pin as output
pinMode(11, OUTPUT); // pin11= PWM output / frequency output
pinMode(12,OUTPUT);

Setup_timer1();
cli(); //stop interrupts

//set timer1 interrupt at 100Hz
TCCR1A = 0; // set entire TCCR1A register to 0
TCCR1B = 0; // same for TCCR1B
TCNT1 = 0; //initialize counter value to 0
// set compare match register for 100hz increments
OCR1A = 155; // = (1610^6) / (1001024) – 1 (must be <65536)
// turn on CTC mode
TCCR1B |= (1 << WGM12);
// Set CS12 and CS10 bits for 1024 prescaler
TCCR1B |= (1 << CS12) | (1 << CS10);
// enable timer compare interrupt
TIMSK1 |= (1 << OCIE1A);

sei();//allow interrupts

Setup_timer2();

// disable interrupts to avoid timing distortion
cbi (TIMSK0,TOIE0); // disable Timer0 !!! delay() is now not available
sbi (TIMSK2,TOIE2); // enable Timer2 Interrupt

dfreq=1000.0; // initial output frequency = 1000.o Hz
tword_m=pow(2,32)*dfreq/refclk; // calulate DDS new tuning word

}
void loop()
{
while(1) {
if (c4ms > 256) { // timer / wait fou a full second
c4ms=0;

  cbi (TIMSK2,TOIE2);              // disable Timer2 Interrupt
  tword_m=pow(2,32)*dfreq/refclk;  // calulate DDS new tuning word
  sbi (TIMSK2,TOIE2);        // enable Timer2 Interrupt
  TCCR1A = _BV(COM1A0) | _BV(COM1B0) ;
  TCCR1B = _BV(WGM12)| 1;
}

}
}
//******************************************************************
// timer1 setup
void Setup_timer1(){
}

// timer2 setup
// set prscaler to 1, PWM mode to phase correct PWM, 16000000/510 = 31372.55 Hz clock
void Setup_timer2() {

// Timer2 Clock Prescaler to : 1
sbi (TCCR2B, CS20);
cbi (TCCR2B, CS21);
cbi (TCCR2B, CS22);

// Timer2 PWM Mode set to Phase Correct PWM
cbi (TCCR2A, COM2A0); // clear Compare Match
sbi (TCCR2A, COM2A1);

sbi (TCCR2A, WGM20); // Mode 1 / Phase Correct PWM
cbi (TCCR2A, WGM21);
cbi (TCCR2B, WGM22);
}

//******************************************************************
// Timer1 Interrupt Service at 100 Hz
//generates pulse wave of frequency 100Hz/2 = 50Hz (takes two cycles for full wave- toggle high then toggle low)
ISR(TIMER1_COMPA_vect){ //timer1 interrupt 100Hz toggles pin 9,10

if (toggle1){
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
toggle1=0;
}
else{
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
toggle1= 1;
}
}

// Timer2 Interrupt Service at 320 KHz = 3.125uSec
// this is the timebase REFCLOCK for the DDS generator
// FOUT = (M (REFCLK)) / (2 exp 32)
ISR(TIMER2_OVF_vect) {

phaccu=phaccu+tword_m; // soft DDS, phase accu with 32 bits
icnt=phaccu >> 24; // use upper 8 bits for phase accu as frequency information
// read value fron ROM sine table and send to PWM DAC
OCR2A=pgm_read_byte_near(sine256 + icnt);

if(icnt1++ == 1) { // increment variable c4ms
c4ms++;
icnt1=0;
}

}

  • carlos afonso perguntada 4 anos atrás
  • última atividade 4 anos atrás
1 voto
2k visualizações

Ola pessoal,

Alguém conhece uma placa SBC baseada em ARM com suporta a discos SSD?

0 votos
7k visualizações

Boa Noite pessoal.

Sou formado em engenharia mecatrônica e estou querendo começar a programar microcontroladores ARM. Qual microcontroladores desta tecnologia temos mais referencias bibliográficas? E qual tipo de Mc devo começar para aplicações simples?
Qual a bibliografia e tipos de simuladores mais comuns para a familia ARM?

Muito obrigado

  • weeber Sa perguntada 4 anos atrás
  • última atividade 3 anos atrás
Mostrando 11 - 20 de 238 resultados