Tag: arduino

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

Olá amigos,

Quero ser informado quando um motor de esteira pare de funcionar ou quando seja desligado.
É possível ele me enviar uma mensagem para meu celular? Ou pelo Twitter?
De preferência que seja utilizado com o Arduino.

Informações do motor:
220V
1 cv

obrigado

0 votos
0 respostas
173 visualizações

Está pensando em criar um novo projeto de robótica, que envolva braços para um novo projeto? Temos a dica perfeita para você, a Eletrogate tem o que você precisa: Kit Braço Robótico em MDF – Eletrogate

0 votos
0 respostas
179 visualizações

Estou usando um joystick e o Pro Micro para emular o mouse, uso exatamente o mesmo código nas duas plataformas, compila perfeitamente, sem nenhum erro, porém só funciona se eu passar o código via Arduino IDE.

O PlatformIO é uma extensão que uso no VS Code, ele enxerga normalmente os includes, inclusive fiz um código de teste com LED e funcionou normalmente via PlatformIO, porém com o seguinte código, o mesmo só funciona se eu gravar pelo Arduino IDE. Usando o PlatformIO, quando eu clico em cima do include com o Ctrl pressionado, ele abre normalmente os arquivos .h

Eis o código:

/* HID Joystick Mouse Example
   by: Jim Lindblom
   date: 1/12/2012
   license: MIT License - Feel free to use this code for any purpose.
   No restrictions. Just keep this license if you go on to use this
   code in your future endeavors! Reuse and share.

   This is very simplistic code that allows you to turn the
   SparkFun Thumb Joystick (http://www.sparkfun.com/products/9032)
   into an HID Mouse. The select button on the joystick is set up
   as the mouse left click.
 */

#include <Arduino.h>
#include <Mouse.h>
int horzPin = A0;  // Analog output of horizontal joystick pin
int vertPin = A1;  // Analog output of vertical joystick pin
int selPin = 9;  // select button pin of joystick

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(selPin, INPUT);  // set button select pin as input
  digitalWrite(selPin, HIGH);  // Pull button select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these
}

void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset
//delay(3000);

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);  // move mouse on y axis
  if (horzValue != 0)
    Mouse.move((horzValue/sensitivity) *-1, 0, 0);  // move mouse on x axis

  if ((digitalRead(selPin) == 0) && (!mouseClickFlag))  // if the joystick button is pressed
  {
    mouseClickFlag = 1;
    Mouse.press(MOUSE_LEFT);  // click the left button down
  }
  else if ((digitalRead(selPin))&&(mouseClickFlag)) // if the joystick button is not pressed
  {
    mouseClickFlag = 0;
    Mouse.release(MOUSE_LEFT);  // release the left button
  }
}
0 votos
0 respostas
360 visualizações

Saudações comunidade,
Estou trabalhando em um projeto com Arduino e preciso que este trabalhe a 2570Hz em uma das portas, porém vi que existe uma tabela fixa para setar o divisor de frequência em um dos temporizadores, então acredito que teria que setar no caso o Timer2 com divisor 1 ficando com 31250Hz nos pinos 3 e 11 e na programação usar de lógica para diminuir essa frequência para 2570Hz e poder aumentar em um décimo (e.g. 2570,1Hz) a cada pressionamento no pushbutton.
Alguém poderia me dizer se isso é possível?

0 votos
379 visualizações

Olá pessoal,

Estou querendo fazer um projeto final para meu curso de automação que consiste em comunicar arduino com CLP. Exemplo, prescionar um botao no CLP e acionar um LED no arduino. Isso é possivel? Existe algum modo de comunicação?

Obrigado!

0 votos
0 respostas
309 visualizações

Amigos,

Estou tentando meu primeiro projeto com ESP8266 seguindo os passos do blog deste site:
https://www.embarcados.com.br/gravando-o-esp8266-01-na-ide-arduino/

Porém, na hora de subir meu código recebo a seguinte mensagem:

Archiving built core (caching) in: /var/folders/qq/kfvk4__s51vcd_nx_p7ggt6h0000gn/T/arduino_cache_208905/core/core_esp8266_esp8266_generic_CpuFrequency_80,FlashFreq_40,FlashMode_dio,UploadSpeed_115200,FlashSize_512K64,ResetMethod_ck,Debug_Disabled,DebugLevel_None_____6a6f03bb7fc7edd1c687f643adbf4091.a O sketch usa 222157 bytes (51%) de espaço de armazenamento para programas. O máximo são 434160 bytes. Variáveis globais usam 31524 bytes (38%) de memória dinâmica, deixando 50396 bytes para variáveis locais. O máximo são 81920 bytes. error: failed reading byte warning: espcomm_send_command: cant receive slip payload data a porta serial warning: espcomm_send_command: cant receive slip payload data selecionada não existe ou sua placa não está conectada error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data error: failed reading byte warning: espcomm_send_command: cant receive slip payload data warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed

Alguém tem idéia do que está errado?

0 votos
0 respostas
375 visualizações

Bom dia amigos, gostaria de saber se alguem aqui possui experiencia em ISOBUS, estou querendo implementar em meu equipamento o ISOBUS para nao precisar mais ter uma tela, e sim usar o VT do proprio trator, li alguns documentos, artigos porem nao evolui, nao sei se alguem tem algum exemplo de como fazer uma tela simples…

0 votos
0 respostas
472 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
0 respostas
829 visualizações

Estou com uma dificuldade.
Estou controlando um motor 220V monofásico com dois reles e um botão Pulso .
Vou fazer a parada e inversao do sentido de rotaçao tipo motor de portao eletronico.

A inversao esta funcionando mas não estou conseguindo fazer os fim de cursos desligarem o rele.

Codigo abaixo:

const int sinalparaorele = 11; //define a porta para o acionamento do rele
const int sinalparaorele2 = 12; //define a porta para o acionamento do rele
int pinobotao = 2; //Porta utilizada para o botão de acionamento
int leitura; //Armazena informações sobre a leitura do botão
int estadorele = 0; //Armazena o estado do relé (ligado/desligado)
int estadorele2 =0; //Armazena o estado do relé 2 (ligado/desligado)
const int FC =4; //Fim de curso 1
const int FC2=5; //Fim de cuso 2
int posicao =0;
int estadoFC = 0;
int estadoFC2 =0;

void setup()
{
//Define o pino como saida (sinal para o rele)
pinMode(sinalparaorele, OUTPUT);
pinMode(sinalparaorele2, OUTPUT);
pinMode(pinobotao, INPUT);
pinMode(FC,INPUT);
pinMode(FC2, INPUT);
digitalWrite(sinalparaorele, HIGH);
digitalWrite(sinalparaorele2, HIGH);
// digitalWrite(sinalparaorele, 0);
}

void loop()
{

leitura = digitalRead(pinobotao);
estadoFC = digitalRead(FC);
estadoFC2 = digitalRead(FC2);

if (leitura != 1)
{
while(digitalRead(pinobotao) != 1)
{
delay(100);
}
// Inverte o estado
if(posicao ==4){
posicao = 0;
}
posicao = posicao + 1;

}
if (estadoFC ==HIGH){
posicao = posicao+1;
}
if (estadoFC2 ==HIGH){
posicao = posicao+1;
}
if(posicao == 0||2||4){
digitalWrite(sinalparaorele, HIGH);
digitalWrite(sinalparaorele2, HIGH);

}
if(posicao == 1){
   digitalRead(estadoFC);
   if(estadoFC == LOW){
    digitalWrite(sinalparaorele, LOW);
   digitalWrite(sinalparaorele2, HIGH);

   }
}
if(posicao == 3){
    digitalRead(estadoFC2);
    if(estadoFC2 ==LOW){
      digitalWrite(sinalparaorele, HIGH);
    digitalWrite(sinalparaorele2, LOW);


    }
    }

}

0 votos
1k visualizações

Olá,estou com dificuldades em programar minha placa SK-S7G2,preciso de ajuda pois não conheço essa placa,procurei pelo programa que é usado para acessar a placa e não encontrei,preciso de alguns exemplos para eu testar.

  • fabsec3561 perguntada 2 anos atrás
  • última atividade 2 anos atrás
Mostrando 1 - 10 de 46 resultados