Entrar    Registrar

Arduino gerador de frquência variavel 2 pwm

Fórum sobre plataforma Arduino

Moderadores: andre_teprom, guest2003, 51, Renie

  • Autor
    Mensagem

Re: Arduino gerador de frquência variavel 2 pwm

Mensagempor edsont » 09 Mai 2018 09:10

Aqui compilou normal no Arduino 1.8.5.

Vou tentar deixar mais fácil e volto a postar aqui.
Avatar do usuário
edsont
Byte
 
Mensagens: 376
Registrado em: 22 Mai 2007 17:19
Localização: Araraquara-SP Brasil - Terra - Sistema Solar - Via Láctea

Re: Arduino gerador de frquência variavel 2 pwm

Mensagempor edsont » 09 Mai 2018 09:40

Coloca os arquivos Stepper.h e Stepper.cpp (anexos) junto na pasta do sketch. Não consegui anexar o arquivo .ino.
O Sketch ficou assim:
Código: Selecionar todos
//*************************************************************************************
   #include <LiquidCrystal.h>
   #include "Wire.h"
   const int rs = 11, en = 9, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
   LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
//****************************************************************************************
   
  #include "Stepper.h"
   
  const int stepsPerRevolution = 200;              // mude isto para ajustar o número de passos por revolução para o seu motor
                                                 
  Stepper MyStepper1(stepsPerRevolution, 6,8);   
  Stepper MyStepper2(stepsPerRevolution, 10,11);
 
  unsigned short int oldSpeed1 = 101;  // inicializado em 101 (fora da faixa normal) para mostrar primeira velocidade se este for zero
  unsigned short int oldSpeed2 = 101;

//*********************************** SETUP *************************************************
   
  void setup() {

   lcd.begin(16, 2);               // CONFIGURA DISPLAY LCD 16 COLUNAS 2 LINHAS
     
  }
 
//*********************************** LOOP *************************************************

  void loop()
  { 
    unsigned short int sensorReading = analogRead(A0);                     // leia o valor do sensor:                                       
    unsigned short int motorSpeed1 = map(sensorReading, 0, 1023, 0, 100);  // mapeie para um intervalo de 0 a 100:
                                                         
    unsigned short int sensorReading1 = analogRead(A1);                     // leia o valor do sensor:                                         
    unsigned short int motorSpeed2 = map(sensorReading1, 0, 1023, 0, 100);  // mapeie para um intervalo de 0 a 100:

//atualiza velocidade quando houver alteracao na leitura ---------------------------------------

    if (motorSpeed1 != oldSpeed1){
      oldSpeed1 = motorSpeed1;
      lcd.setCursor(0,0);
      lcd.print(motorSpeed1 / 1.2);                 //CALCULO PARA EXIBIÇÃO FREQUENCIA NO DISPLAY
      MyStepper1.setSpeed(motorSpeed1);
    }

    if (motorSpeed2 != oldSpeed2){
      oldSpeed2 = motorSpeed2;
      lcd.setCursor(0,1);
      lcd.print(motorSpeed2 / 1.2);                 //CALCULO PARA EXIBIÇÃO FREQUENCIA NO DISPLAY
      MyStepper2.setSpeed(motorSpeed2);
    }

//move motor se velocidade maior que zero -----------------------------------------------------

    if (motorSpeed1 > 0) MyStepper1.move(1);  // 1=normal, 0=reverso
    if (motorSpeed2 > 0) MyStepper2.move(1);
   
 }


Observar que coloquei aspas no include "stepper.h" para que não busque na biblioteca padrão.
Se der erro na primeira compilação, feche e abra novamente para que os arquivos apareçam nas abas do IDE.

Stepper.h

Stepper.cpp



Edit: acrescentei umas linhas que tinha esquecido.
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por edsont em 09 Mai 2018 09:50, em um total de 1 vez.
Avatar do usuário
edsont
Byte
 
Mensagens: 376
Registrado em: 22 Mai 2007 17:19
Localização: Araraquara-SP Brasil - Terra - Sistema Solar - Via Láctea

Re: Arduino gerador de frquência variavel 2 pwm

Mensagempor menegola » 10 Mai 2018 08:06

edsont escreveu:Coloca os arquivos Stepper.h e Stepper.cpp (anexos) junto na pasta do sketch. Não consegui anexar o arquivo .ino.
O Sketch ficou assim:
Código: Selecionar todos
//*************************************************************************************
   #include <LiquidCrystal.h>
   #include "Wire.h"
   const int rs = 11, en = 9, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
   LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
//****************************************************************************************
   
  #include "Stepper.h"
   
  const int stepsPerRevolution = 200;              // mude isto para ajustar o número de passos por revolução para o seu motor
                                                 
  Stepper MyStepper1(stepsPerRevolution, 6,8);   
  Stepper MyStepper2(stepsPerRevolution, 10,11);
 
  unsigned short int oldSpeed1 = 101;  // inicializado em 101 (fora da faixa normal) para mostrar primeira velocidade se este for zero
  unsigned short int oldSpeed2 = 101;

//*********************************** SETUP *************************************************
   
  void setup() {

   lcd.begin(16, 2);               // CONFIGURA DISPLAY LCD 16 COLUNAS 2 LINHAS
     
  }
 
//*********************************** LOOP *************************************************

  void loop()
  { 
    unsigned short int sensorReading = analogRead(A0);                     // leia o valor do sensor:                                       
    unsigned short int motorSpeed1 = map(sensorReading, 0, 1023, 0, 100);  // mapeie para um intervalo de 0 a 100:
                                                         
    unsigned short int sensorReading1 = analogRead(A1);                     // leia o valor do sensor:                                         
    unsigned short int motorSpeed2 = map(sensorReading1, 0, 1023, 0, 100);  // mapeie para um intervalo de 0 a 100:

//atualiza velocidade quando houver alteracao na leitura ---------------------------------------

    if (motorSpeed1 != oldSpeed1){
      oldSpeed1 = motorSpeed1;
      lcd.setCursor(0,0);
      lcd.print(motorSpeed1 / 1.2);                 //CALCULO PARA EXIBIÇÃO FREQUENCIA NO DISPLAY
      MyStepper1.setSpeed(motorSpeed1);
    }

    if (motorSpeed2 != oldSpeed2){
      oldSpeed2 = motorSpeed2;
      lcd.setCursor(0,1);
      lcd.print(motorSpeed2 / 1.2);                 //CALCULO PARA EXIBIÇÃO FREQUENCIA NO DISPLAY
      MyStepper2.setSpeed(motorSpeed2);
    }

//move motor se velocidade maior que zero -----------------------------------------------------

    if (motorSpeed1 > 0) MyStepper1.move(1);  // 1=normal, 0=reverso
    if (motorSpeed2 > 0) MyStepper2.move(1);
   
 }


Observar que coloquei aspas no include "stepper.h" para que não busque na biblioteca padrão.
Se der erro na primeira compilação, feche e abra novamente para que os arquivos apareçam nas abas do IDE.

Stepper.h

Stepper.cpp



Edit: acrescentei umas linhas que tinha esquecido.



Caro Colega edsont.
Agradeço sua atenção,mas código muito complexo para aprendiz como eu.
menegola
Word
 
Mensagens: 597
Registrado em: 08 Dez 2008 12:11

Re: Arduino gerador de frquência variavel 2 pwm

Mensagempor andre_teprom » 10 Mai 2018 09:58

menegola escreveu:Caro Colega edsont.
Agradeço sua atenção,mas código muito complexo para aprendiz como eu.


Nao consegui ver o que voce entendeu como sendo de maior complexidade nesse codigo se comparado ao que voce postou inicialmente/ ambos tem praticamente a mesma estrutura,
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Arduino gerador de frquência variavel 2 pwm

Mensagempor menegola » 11 Mai 2018 07:21

Este tem umas 15 linhas.
Sou leigo no assunto.
Não quero adicionar bibliotecas personalizadas.

Este esta quase funcionando,falta apenas alguns detalhes.
Modifiquei ficou assim.

Display pode desabilitar,não muda em nada.
Stepper myStepper(stepsPerRevolution, 6,8); Usa somente port 6, não desabilito port 8 porque d erro na compilação
Stepper miStepper(stepsPerRevolution, 10,11); usa somente port 10 não desabilito port 11 porque d erro na compilação

//*************************************************************************************
#include <LiquidCrystal.h>
#include "Wire.h"
const int rs = 11, en = 9, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
//****************************************************************************************

#include <Stepper.h>

const int stepsPerRevolution = 200;
const int steps2PerRevolution = 200; // mude isto para ajustar o número de passos por revolução para o seu motor

// inicializa a biblioteca de passo nos pinos 8 a 11:
Stepper myStepper(stepsPerRevolution, 6,8);
Stepper miStepper(stepsPerRevolution, 10,11);

int stepCount = 0; // número de passos que o motor tomou

void setup() {
lcd.begin(16, 2); // CONFIGURA DISPLAY LCD 16 COLUNAS 2 LINHAS
lcd.setCursor(1,0); // POSICIONA MENSAGEM INICIAL DISPLAY
lcd.print("Gerador PWM"); // IMPRIME MENSAGEM pwm

// lcd.setCursor(6,1); // POSICIONA MENSAGEM INICIAL DISPLAY
// lcd.print("HZ"); // IMPRIME MENSAGEM HZ


}

void loop() {
int sensorReading = analogRead(A0);
int sensor2Reading = analogRead(A1); // leia o valor do sensor:

int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // mapeie para um intervalo de 0 a 100:
// ajuste a velocidade do motor:
if (motorSpeed > 0)
myStepper.setSpeed(motorSpeed);

myStepper.step(stepsPerRevolution / 100);

lcd.setCursor(0,1);
lcd.print(motorSpeed / 1.2); //CALCULO PARA EXIBIÇÃO FREQUENCIA NO DISPLAY



//**********************************************************************************************************
int motorrSpeed = map(sensor2Reading, 0, 1023, 0, 101); // mapeie para um intervalo de 0 a 100:
// ajuste a velocidade do motor:
if (motorrSpeed > 0) {
miStepper.setSpeed(motorrSpeed);

miStepper.step(steps2PerRevolution / 100);

lcd.setCursor(10,1);
lcd.print(motorrSpeed / 1.2);


}
}
menegola
Word
 
Mensagens: 597
Registrado em: 08 Dez 2008 12:11

Anterior

Voltar para ARDUINO

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante