Ir ao conteúdo
  • Cadastre-se

PIC PIC12F675, Recebendo erros na hora de compilar


Visitante

Posts recomendados

Amados, 

 

Tenho um codigo para geração de sinais spwm , codigo abaixo :

 

 

#include <xc.h>
#include <stdint.h>
#include <stdbool.h>

// Configuração do Oscilador
#pragma config FOSC = INTOSC, WDTE = OFF, PWRTE = OFF, MCLRE = OFF, CP = OFF, CPD = OFF, BOREN = OFF, CLKOUTEN = OFF, IESO = OFF, FCMEN = OFF

// Define a frequência do Oscilador interno (8MHz)
#define _XTAL_FREQ 8000000

// Diretiva #DEVICE
#pragma DEVICE ADC = 10

// Protótipo das Funções
void initADC(void);
uint16_t readADC(uint8_t ch);

void main(void)
{
    uint16_t adc_value;
    float voltage;

    // Configura o pino RA0 como entrada analógica
    ANSELAbits.ANSA0 = 1;

    // Inicializa o módulo ADC
    initADC();

    while (1)
    {
        // Lê o valor do canal 0 (RA0)
        adc_value = readADC(0);

        // Calcula a tensão a partir do valor lido
        voltage = (float)adc_value * 5.0 / 1023.0;

        // Faz alguma operação com a tensão lida
        // ...

        __delay_ms(1000); // Espera 1 segundo
    }
}

// Inicializa o módulo ADC
void initADC(void)
{
    // Seleciona o clock do ADC como FOSC/8
    ADCON0bits.ADCS = 0b011;

    // Seleciona a referência do ADC como VDD
    ADCON1bits.ADFM = 0;
    ADCON1bits.ADCREF = 0b00;

    // Habilita o módulo ADC
    ADCON0bits.ADON = 1;
}

// Lê um canal analógico utilizando o módulo ADC
uint16_t readADC(uint8_t ch)
{
    // Seleciona o canal de entrada
    ADCON0bits.CHS = ch;

    // Inicia a conversão ADC
    ADCON0bits.GO = 1;

    // Aguarda o fim da conversão ADC
    while (ADCON0bits.GO);

    // Retorna o valor convertido
    return (ADRESH << 😎 | ADRESL;
}

 

Erros que estou recebendo abaixo :

 

Clean: Deleting intermediary and output files. Clean Warning: File "C:\Users\Administrador\Desktop\PROJETO MPLAB\inversor.o" doesn't exist. Clean: Deleted file "inversor.ERR". Clean: Deleted file "C:\Users\Administrador\Desktop\PROJETO MPLAB\inversor60hz.mcs". Clean: Done. Executing: "C:\Program Files (x86)\PICC\Ccsc.exe" +FM "inversor.c" +DF +LN +T +A +M +Z +Y=9 +EA *** Error 18 "inversor.c" Line 1(9,15): File can not be opened     Not in "C:\Program Files (x86)\PICC\devices\xc.h"     Not in "C:\Program Files (x86)\PICC\drivers\xc.h"     Not in project "C:\Users\Administrador\Desktop\PROJETO MPLAB\xc.h" *** Error 128 "C:\Program Files (x86)\PICC\drivers\stdint.h" Line 19(9,15): A #DEVICE required before this line       2 Errors,  0 Warnings. Build Failed. Halting build on first failure as requested. BUILD FAILED: Wed Mar 08 16:08:15 2023

 

alguém pode me informar de forma clara ( se possível ) por que está acontecendo isso , e como tá resolvendo ?

 

Endel Neiva 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
4 horas atrás, endrinho disse:

de forma clara

A mensagem deixa claro: não está achando o arquivo xc.h em nada mais nada menos que em 3 lugares diferentes.. e olha que ele tentou

4 horas atrás, endrinho disse:

File can not be opened     Not in "C:\Program Files (x86)\PICC\devices\xc.h"     Not in "C:\Program Files (x86)\PICC\drivers\xc.h"     Not in project "C:\Users\Administrador\Desktop\PROJETO MPLAB\xc.h"

De cara ele é referenciado na linha 1

4 horas atrás, endrinho disse:

#include <xc.h>

4 horas atrás, endrinho disse:

Error 18 "inversor.c" Line 1(9,15)

 

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

  • 2 semanas depois...
Em 08/03/2023 às 20:27, .if disse:

A mensagem deixa claro: não está achando o arquivo xc.h em nada mais nada menos que em 3 lugares diferentes.. e olha que ele tentou

De cara ele é referenciado na linha 1

 

tá ! e como fazer pra tá resolvendo isso , você sabe ?

por que o que o compilador está dizendo EU TB SEI 

 

quero saber e foi por está única e exclusiva razão que eu postei isso aqui 

COMO TÁ RESOLVENDO ISSO .

 

alguém pode me escrever aqui como eu resolvo isso , teorias ou traduções eu sei fazer tb 

Link para o comentário
Compartilhar em outros sites

6 horas atrás, endrinho disse:

alguém pode me escrever aqui como eu resolvo isso , teorias ou traduções eu sei fazer tb

 

Olha, se você sabe fazer traduções, procure no site do fabricante do compilador !

Está em inglês, basta traduzir ! ( kkkkkk ) !

 

Em 08/03/2023 às 20:27, .if disse:

File can not be opened     Not in "C:\Program Files (x86)\PICC\devices\xc.h"     Not in "C:\Program Files (x86)\PICC\drivers\xc.h"     Not in project "C:\Users\Administrador\Desktop\PROJETO MPLAB\xc.h"

 

Pelo jeito você não deve saber traduzir muito bem .... reparou o "NOT IN PROJECT" ????  Basta achar onde você tem arquivo XC.H e colocar no seu projeto, oras !

 

É o que o @.if  lhe falou educadamente e você reclamou kkkkkkk !

 

 

Falando sério agora ..... Esse seu código está tão perto de gerar um sinal SPWM quanto um programinha de jogo da velha derrotar um campeão mundial de xadrez .....

 

Cadê a configuração dos módulos do seu velho PIC 12F675 para gerar o sinal SPWM com a temporização e forma de onda necessária para o sinal de 60 Hz ? Cadê a geração da "portadora" utilizada para o SPWM ? Cadê o tratamento dos Dead-times necessários de acordo com os seus Mosfets escolhidos e a potência que você pretende obter deles ? Alias isso tem a ver com os parâmetros do transformador inversor que você ira utilizar, já tem os parâmetros dele incluindo os do núcleo ? E o circuito de realimentação para controlar a amplitude da tensão conforme a carga, como você pretende fazer essa regulação e qual o delay dela para calcular se o sistema irá entrar em oscilação ou não ?

 

Copiar um projeto é fácil, meu amigo. Alguém já resolveu tudo para você.

 

Projetar isso do zero é algo muito mais difícil e poucos de nós aqui no CDH temos todo o conhecimento teórico e prático para fazer isso. Eu nem me atrevo a tentar......

 

 

Porque você não para de sofrer e usa algo próprio para isso ? Ninguém aqui vai te dar esse projeto pronto !

 

Tem um módulo pronto para inversores no mercado que muita gente já postou inversores de mais de 3KW com ele, tem centenas de vídeos na Internet sobre isso ! Ele gera o sinal SPWM, tem como tratar a amplitude gerada, tem pronto o tratamento do dead-time, enfim tudo o que você precisa está dentro dele e prontinho!

 

Segue o link :

 

https://www.smartkits.com.br/gerador-de-onda-senoidal-spwm-egs002-eg8010-ir2113

 

image.png.21532d7dc5734598aaac29a468d77ed1.png

 

 

Paulo

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

10 horas atrás, .if disse:

tá! ., ache o arquivo xc.h. Dá um ctrl-f ou arquivo procurar no seu gerenciador de arquivo. Digite xc.h. Assim que achar me fale...

somente ( to falando do mais antigo ) o CX8 e´que tem a biblioteca que contem o xc.h 

ou consigo esta bibli em algum outro lugar ?

Link para o comentário
Compartilhar em outros sites

12 horas atrás, aphawk disse:

@endrinho ,

 

Experimente colocar  "xc.h library" no Google , aparecem dezenas de posts sobre isso.

Esse arquivo vem com o CX8. Experimente reinstalar , ok ?

 

Paulo

MAIS EU JA HAVIA FEITO ISSO , porém SEM SUCESSO 

ahhhh encontrava sempre que essa bibli so existe no tal do XC8 ou algo do tipo 

por favor , analise as imagens :

 

pelo menos no que eu entendi, nenhuma dos endereços me informou nos 100%

como achar tal bibli , se sim vê se me indique o link pelo amor de Deus kkkkkkkkkkkk

Captura de Tela (24).png

Captura de Tela (25).png

Captura de Tela (26).png

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
11 horas atrás, aphawk disse:

Experimente reinstalar , ok ?

A ideia é válida. Mas nem precisa se usar o compilador online que indiquei muitas vezes neste forum. Uma a mais não deve fazer mal https://www.microchip.com/en-us/tools-resources/develop/mplab-xpress

 

Informo ao querido amigo autor do tópico que o programa acima não roda no mc do título, ok? Só pelo fato de ter uma conta com variável tipo float já ocuparia quase o dobro da capacidade de memória do mc. Considere as recomendações:

  • não queime a etapa do pisca led
  • se quiser testar algo do gênero apenas como desafio, considere um mc de mais capacidade
  • pro projeto proposto, considere a excelentíssima do amigo Paulão. ... aliás senti muita vontade possuir um treco daquele

Preguiça de procurar agora, mas já fiz um inversor de frequência com sucesso prático com pic16fxxx. No meu (meu) caso foi só pra gerar uma onda senoidal pra rodar um motor de tanquinho com 110Vdc. Está em uma de minhas postagens o cód fonte e simulação e etc.

 

1 minuto atrás, endrinho disse:

essa bibli so existe no tal do XC8 ou algo do tipo 

Pelo jeito você nem deu bola e nem procurou tal arquivo no seu pc conforme orientei. Mas de toda a forma, releia as recomendações acima... com o 12f não deve dar certo mesmo mesmo resolvendo a questão do arquivo.

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, .if disse:

A ideia é válida. Mas nem precisa se usar o compilador online que indiquei muitas vezes neste forum. Uma a mais não deve fazer mal https://www.microchip.com/en-us/tools-resources/develop/mplab-xpress

 

Informo ao querido amigo autor do tópico que o programa acima não roda no mc do título, ok? Só pelo fato de ter uma conta com variável tipo float já ocuparia quase o dobro da capacidade de memória do mc. Considere as recomendações:

  • não queime a etapa do pisca led
  • se quiser testar algo do gênero apenas como desafio, considere um mc de mais capacidade
  • pro projeto proposto, considere a excelentíssima do amigo Paulão. ... aliás senti muita vontade possuir um treco daquele

Preguiça de procurar agora, mas já fiz um inversor de frequência com sucesso prático com pic16fxxx. No meu (meu) caso foi só pra gerar uma onda senoidal pra rodar um motor de tanquinho com 110Vdc. Está em uma de minhas postagens o cód fonte e simulação e etc.

 

Pelo jeito você nem deu bola e nem procurou tal arquivo no seu pc conforme orientei. Mas de toda a forma, releia as recomendações acima... com o 12f não deve dar certo mesmo mesmo resolvendo a questão do arquivo.

sim sim ! kkkkkkkkkk agradeço ao nobre amigo pela informação , descobri isso abestalhado 

Todo trabalho de estudos e horas de dedicação jogados fora, é isso que se ganha por não saber 

nada sobre programação em PIC !!!!

 

masssssssss usando o bom ânimo 

e mudando de MC, estou agora em cima do PIC16F628A

iniciando todo o trabalho cansativo ( diga-se de passagem e muitoooo ) novamente 

Espero poder contar com a ajuda do amigo e demais nesta nova etapa , e espero que esse PIC

Escolhido agora dê certo .........

 

OBS: até então, estava no anuncio o modelo do PIC, e ninguém me disse isso até você dizer 

no mínimo ............. sei la 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
29 minutos atrás, endrinho disse:

usando o bom ânimo 

e mudando de MC, estou agora em cima do PIC16F628A

Sem querer desanimar mas desanimando, este daí também não dá conta [da matemática da coisa]. Também não lembro se ele tem saída pwm mas se tiver, sim ele pode gerar um sinal pwm senoidal pra uma ponte igbt desde que use a técnica que já mencionei de usar tabela senoidal pre calculada.

Link para o comentário
Compartilhar em outros sites

@endrinho ,

 

Olhe, eu fui direto no site da Microchip, baixei o compilador XC8, instalei, e não é que o arquivo xc.h foi instalado e está em um sub-diretório do compilador ?

 

Deixe de reclamar e se mexa, reinstale o compilador , e procure pelo arquivo que você vai encontrar sim.

 

1 hora atrás, endrinho disse:

OBS: até então, estava no anuncio o modelo do PIC, e ninguém me disse isso até você dizer 

no mínimo ............. sei la 

 

Bom, você mesmo disse que você tem a teoria, deveria saber que os recursos do PIC12 eram bem limitados. Com esse melhorou um pouquinho.

 

Só que não muda nada, esse seu programa não é nem 10% do que precisa.....

 

Paulo

 

 

Link para o comentário
Compartilhar em outros sites

AMADOS AMIGOS, 

 

consegui ( depois de instalar o MPLAB X IDE  ) e tudo mais que este instala na máquina 

agora a bendita da biblioteca #include<xc.h>, compilou !

 

só´faltando o codigo ( mais como agora eu já sei que isso vai demorar pois quero escreve-lo eu mesmo )

 

conto ou espero contar ....... com o apoio dos Amigos sempre 

 

LUTA CONTINUA ....................

 

AH !!! sou Brasileiro , e não desisto nunca ! 

2 horas atrás, .if disse:

Sem querer desanimar mas desanimando, este daí também não dá conta [da matemática da coisa]. Também não lembro se ele tem saída pwm mas se tiver, sim ele pode gerar um sinal pwm senoidal pra uma ponte igbt desde que use a técnica que já mencionei de usar tabela senoidal pre calculada.

seria mais ou menos , basicamente e tudo mais isso aqui :

 

// Definindo a tabela de valores senoidais
const unsigned char senoide[64] = {
    128, 140, 152, 163, 175, 186, 197, 208, 218, 228, 237, 245, 252, 255, 255, 252,
    245, 237, 228, 218, 208, 197, 186, 175, 163, 152, 140, 128, 116, 104, 93,  81,
    70,  59,  48,  37,  27,  17,  8,   0,   0,   8,   17,  27,  37,  48,  59,  70,
    81,  93,  104, 116
};

2 horas atrás, aphawk disse:

@endrinho ,

 

Olhe, eu fui direto no site da Microchip, baixei o compilador XC8, instalei, e não é que o arquivo xc.h foi instalado e está em um sub-diretório do compilador ?

 

Deixe de reclamar e se mexa, reinstale o compilador , e procure pelo arquivo que você vai encontrar sim.

 

 

Bom, você mesmo disse que você tem a teoria, deveria saber que os recursos do PIC12 eram bem limitados. Com esse melhorou um pouquinho.

 

Só que não muda nada, esse seu programa não é nem 10% do que precisa.....

 

Paulo

 

 

e desculpa de peidorreiro sempre será barriga inchada kkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Link para o comentário
Compartilhar em outros sites

1 hora atrás, endrinho disse:

seria mais ou menos , basicamente e tudo mais isso aqui :

 

// Definindo a tabela de valores senoidais
const unsigned char senoide[64] = {
    128, 140, 152, 163, 175, 186, 197, 208, 218, 228, 237, 245, 252, 255, 255, 252,
    245, 237, 228, 218, 208, 197, 186, 175, 163, 152, 140, 128, 116, 104, 93,  81,
    70,  59,  48,  37,  27,  17,  8,   0,   0,   8,   17,  27,  37,  48,  59,  70,
    81,  93,  104, 116
};

 

Isso é só uma tabela de valores para criar a senóide ........  o hardware não sabe o que fazer com isso, meu amigo ... qual Timer você irá usar para fazer o PWM , qual a frequência da portadora para o SPWM, e como você vai inicializar tudo para gerar automaticamente o SPWM na frequência de 60HZ com a portadora na frequência desejada ?

 

Já fêz a pesquisa para aprender como gerar um sinal spwm usando os Timers do Pic ?

 

É bem simples, mas quem tem de aprender e fazer é você .... segue um novo link para te ajudar :

 

https://microcontrollerslab.com/spwm-generation-using-pic16f877a-microcontroller/

 

Ah, esqueci de dizer ... espero que você saiba usar interrupção .....

 

Como você não deve gostar de pesquisar também ..... segue outro link :

 

http://tahmidmc.blogspot.com/2012/10/generation-of-sine-wave-using-spwm-in_10.html

 

Chega, encerro aqui a minha participação, boa sorte !

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Está no caminho certo sim amigo. 1 detalhe minimamente curioso é que você precisa apenas dos valores de 0 a 90 que seria o 1º quadrante. Os outros 3 são cópias espelhadas horizontal e verticalmente deles 😁. Lembrando que for só pra girar motor bastam uns 8 valores... Mas acho que estou colocando a carroça na frente do burro.. 🤪

Vá por partes. Faça algo e retorne com algo um pouco + concreto, ok?

25 minutos atrás, aphawk disse:

espero que você saiba usar interrupção .....

Já eu espero que ele saiba ler inglês sem usar o tradutor  kk. Pelo menos o inglês técnico, ok amigo?

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

19 horas atrás, aphawk disse:

 

Isso é só uma tabela de valores para criar a senóide ........  o hardware não sabe o que fazer com isso, meu amigo ... qual Timer você irá usar para fazer o PWM , qual a frequência da portadora para o SPWM, e como você vai inicializar tudo para gerar automaticamente o SPWM na frequência de 60HZ com a portadora na frequência desejada ?

 

Já fêz a pesquisa para aprender como gerar um sinal spwm usando os Timers do Pic ?

 

É bem simples, mas quem tem de aprender e fazer é você .... segue um novo link para te ajudar :

 

https://microcontrollerslab.com/spwm-generation-using-pic16f877a-microcontroller/

 

Ah, esqueci de dizer ... espero que você saiba usar interrupção .....

 

Como você não deve gostar de pesquisar também ..... segue outro link :

 

http://tahmidmc.blogspot.com/2012/10/generation-of-sine-wave-using-spwm-in_10.html

 

Chega, encerro aqui a minha participação, boa sorte !

 

Paulo

então ! eu esteva que você me dissesse isso meu amigo 

ou na melhor das hipóteses sabendo qual é o PIC que estou usando 

e entendo um pouco como eu de SPWM saberia me dizer qual seria o TIMER A SER USADO 

para claro ! lembrando né criar uma onda senoidal pura etc etc etc , mais mesmo assim obrigado pela ajuda 

19 horas atrás, aphawk disse:

 

Isso é só uma tabela de valores para criar a senóide ........  o hardware não sabe o que fazer com isso, meu amigo ... qual Timer você irá usar para fazer o PWM , qual a frequência da portadora para o SPWM, e como você vai inicializar tudo para gerar automaticamente o SPWM na frequência de 60HZ com a portadora na frequência desejada ?

 

Já fêz a pesquisa para aprender como gerar um sinal spwm usando os Timers do Pic ?

 

É bem simples, mas quem tem de aprender e fazer é você .... segue um novo link para te ajudar :

 

https://microcontrollerslab.com/spwm-generation-using-pic16f877a-microcontroller/

 

Ah, esqueci de dizer ... espero que você saiba usar interrupção .....

 

Como você não deve gostar de pesquisar também ..... segue outro link :

 

http://tahmidmc.blogspot.com/2012/10/generation-of-sine-wave-using-spwm-in_10.html

 

Chega, encerro aqui a minha participação, boa sorte !

 

Paulo

 

Já fêz a pesquisa para aprender como gerar um sinal spwm usando os Timers do Pic ?

R: estou fazendo isso já a mais de 6 meses .

19 horas atrás, .if disse:

Está no caminho certo sim amigo. 1 detalhe minimamente curioso é que você precisa apenas dos valores de 0 a 90 que seria o 1º quadrante. Os outros 3 são cópias espelhadas horizontal e verticalmente deles 😁. Lembrando que for só pra girar motor bastam uns 8 valores... Mas acho que estou colocando a carroça na frente do burro.. 🤪

Vá por partes. Faça algo e retorne com algo um pouco + concreto, ok?

Já eu espero que ele saiba ler inglês sem usar o tradutor  kk. Pelo menos o inglês técnico, ok amigo?

eu descobrir que isso pode ser espelhado ......... então partindo dai 

VOCÊ CRIA OS VALORES PARA QUE A ONDA SE APRESENTE NA MELHOR eficiencia ETC ETC ETC EEEEEEEEEEEEEEEE ETC , E DEPOIS ESPELHA ELE , PERGUNTINHA 

 

será que fazendo assim funcionaria ?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Não achei o projeto completo mas sim tá aí em algum lugar da net pra alimentar o chatgpt. 😜

A referẽncia que achei:

De fato usei um pic16f876 com 2 pwm mas não achei rapidão e to com preguiça de procurar

 

3 horas atrás, endrinho disse:

eu descobrir que isso pode ser espelhado ......... então partindo dai 

VOCÊ CRIA OS VALORES PARA QUE A ONDA SE APRESENTE NA MELHOR eficiencia

No caso acima parece que usei 1023 valores mas a ideia era só teste na simulação mesmo. Na prática bastam 8 até os 90o. Apesar dos degrauzinhos, a própria indutância do motor dá um jeito de completar a senoidização da onda. Lembrando que a meu (meu) projeto era pra motor e não pra inversor. Neste receba ajuda zero deste ser que vos escreve.

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

@endrinho ,

 

Você pode usar qualquer timer. Faça as contas a partir do Clock de seu PIC para ver quais dos Timers pode te atender usando um dos prescalers disponíveis.

 

Agora, já que você pesquisou 6 meses, pode dizer para nós como que você pretende gerar um sinal SPWM quasi-sinusoidal usando um dos Timers que podem contar 8 bits ou 16 bits, e como determinar a frequência de contagem desse Timer ? Não quero o código, quero que você explique em palavras o que  a saída do timer deve apresentar , a partir da contagem dele, e como mudar essa saída para atingir seu objetivo !

 

Não adianta você ter um baita equipamento se não faz nem ideia de como usar esse equipamento para atingir seu objetivo.

 

Quanto à sua última pergunta, até dá para gerar o SPWM a partir de uma tabela com apenas 1/4 do tamanho total da senóide, mas o software vai complicar um pouco, pois uma hora ele usa a tabela normal, depois usa a tabela do final para o começo, e depois repete o processo anterior com o complemento do valor da tabela, 

 

No seu atual estágio, é muito mais fácil usar a tabela inteira.

 

Paulo

 

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

5 horas atrás, aphawk disse:

@endrinho ,

 

Você pode usar qualquer timer. Faça as contas a partir do Clock de seu PIC para ver quais dos Timers pode te atender usando um dos prescalers disponíveis.

 

Agora, já que você pesquisou 6 meses, pode dizer para nós como que você pretende gerar um sinal SPWM quasi-sinusoidal usando um dos Timers que podem contar 8 bits ou 16 bits, e como determinar a frequência de contagem desse Timer ? Não quero o código, quero que você explique em palavras o que  a saída do timer deve apresentar , a partir da contagem dele, e como mudar essa saída para atingir seu objetivo !

 

Não adianta você ter um baita equipamento se não faz nem ideia de como usar esse equipamento para atingir seu objetivo.

 

Quanto à sua última pergunta, até dá para gerar o SPWM a partir de uma tabela com apenas 1/4 do tamanho total da senóide, mas o software vai complicar um pouco, pois uma hora ele usa a tabela normal, depois usa a tabela do final para o começo, e depois repete o processo anterior com o complemento do valor da tabela, 

 

No seu atual estágio, é muito mais fácil usar a tabela inteira.

 

Paulo

 

não. não posso porque assim como eu tem gente querendo aprender porém sutilmente demais 

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

caso você saiba , por favor nos diga , caso tb assim como eu não saiba , vamos aprender juntos 

pode ser ?

por que teoria é bem mais fácil do que prática, isso eu ja aprendi tb 

6 horas atrás, .if disse:

Não achei o projeto completo mas sim tá aí em algum lugar da net pra alimentar o chatgpt. 😜

A referẽncia que achei:

De fato usei um pic16f876 com 2 pwm mas não achei rapidão e to com preguiça de procurar

 

No caso acima parece que usei 1023 valores mas a ideia era só teste na simulação mesmo. Na prática bastam 8 até os 90o. Apesar dos degrauzinhos, a própria indutância do motor dá um jeito de completar a senoidização da onda. Lembrando que a meu (meu) projeto era pra motor e não pra inversor. Neste receba ajuda zero deste ser que vos escreve.

o problema é que na teoria .......... que todos nós parecemos saber demais sobre 

 

precisa-se de dois sinais : POPRTADORA + MODULANTE , para que sinais de spwm 

se formem de forma pelo menos eficiente .......... Então criar estes dois sinais é que são elas 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sua teoria está no caminho certo

 

1 hora atrás, endrinho disse:

dois sinais : POPRTADORA + MODULANTE

 

Modulante é a tabela. Portadora é o timer do Paulão... ou no meu (meu) exemplo minimalista do link (que algo me diz que você nem leu) é a iteração do loop. Perceba o ajuste

Em 19/05/2020 às 16:36, albert_emule disse:
delay(8);//ajuste 60Hz @ clock 16MHz

 

Cada vez mais eu creio que você queimou a etapa do pisca led

 

E sim, na prática a teoria é outra (©)  ou na prática há outra teoria (© ©)

Link para o comentário
Compartilhar em outros sites

Em 25/03/2023 às 18:43, .if disse:

Sua teoria está no caminho certo

 

 

Modulante é a tabela. Portadora é o timer do Paulão... ou no meu (meu) exemplo minimalista do link (que algo me diz que você nem leu) é a iteração do loop. Perceba o ajuste

 

Cada vez mais eu creio que você queimou a etapa do pisca led

 

E sim, na prática a teoria é outra (©)  ou na prática há outra teoria (© ©)

kkkkkkkkkkkk PAULÃO e seu timer 

pois é, Agora partindo disso .......

 

- preciso de uma ONDA TRIÂNGULAR ( com que frequência ) ?

 

- preciso de uma ONDA SENOIDAL PÚRA E O MAIS PERFEITA POSSÍVEL

(pois está será a amostra da saída do inversor ) 

 

PERGUNTAAAAAA : como saber isso ?

 

ahhhhhh eu li sim ! 

 

Modulante é a tabela. Portadora é o timer do Paulão... ou no meu (meu) exemplo minimalista do link (que algo me diz que você nem leu) é a iteração do loop. Perceba o ajuste

 

porém já estou me dando mal com está linha de codigo na hora de compilar veja a linha :

static bit comuta;

 

Error 48 ..................... Especting a (

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
15 horas atrás, endrinho disse:

uma ONDA TRIÂNGULAR

Nem precisa tabela. Basta incrementar o dutty cycle. algo como duty(i++);

Dica: pra ver o resultado da onda no simulador, coloque um filtro RC chute 10K...100nF na saída do pino. Veja com osciloscópio no C. (🤨)

 

15 horas atrás, endrinho disse:

já estou me dando mal com está linha de codigo na hora de compilar veja a linha :

static bit comuta;

 

Error 48 ..................... Especting a (

Parece que o amigo acha que ctrl-c ctrl-v vai resolver sua vida todinha do início até o final dos tempos. Neste caso frustrações um pouco maiores que esta estão a sua espreita.

Nesta vou quebrar seu galho... coloque char mas: prefira pesquisar primeiramente: o que é um bit?; o que é uma variável tipo bit? ; qual a denominação que seu compilador dá a uma variável tipo bit?... ou coloque char. Vai ocupar 8 mas usa só 1.

 

 

 

 

2 horas atrás, endrinho disse:

parece que sinceramente , está sendo inútiu pois o codigo qué resolve mesmo 

ninguém sabe

Eu sei o código todo mas o que de fato não sei é te passar. Apesar que já lhe passei o que acho que tinha que passar. Mas entendo sua ansiedade. Pena que não lhe posso lhe passar tudo mastigado, ok? Meu interesse se limita a lhe ensinar a pescar e não dar o peixe. Este também o é o do forum.

Boa sorte

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

58 minutos atrás, .if disse:

Nem precisa tabela. Basta incrementar o dutty cycle. algo como duty(i++);

Dica: pra ver o resultado da onda no simulador, coloque um filtro RC chute 10K...100nF na saída do pino. Veja com osciloscópio no C. (🤨)

 

Parece que o amigo acha que ctrl-c ctrl-v vai resolver sua vida todinha do início até o final dos tempos. Neste caso frustrações um pouco maiores que esta estão a sua espreita.

Nesta vou quebrar seu galho... coloque char mas: prefira pesquisar primeiramente: o que é um bit?; o que é uma variável tipo bit? ; qual a denominação que seu compilador dá a uma variável tipo bit?... ou coloque char. Vai ocupar 8 mas usa só 1.

acho não , e é exatamente por esta razão de não achar mesmo que estou aqui tentando travar outra luta por ajuda mais parece que sinceramente , está sendo inútiu pois o codigo qué resolve mesmo 

ninguém sabe passa não é vdd .................. Teria até o padeiro sabe escrever , preciso é resolver como o amigo acabou de frisar 

Link para o comentário
Compartilhar em outros sites

19 horas atrás, endrinho disse:

preciso de uma ONDA TRIÂNGULAR ( com que frequência ) ?

 

Vixi parece que agora você resolveu atirar para tudo que é lado ..... Porque que você acha que fazer uma onda triangular vai resolver o seu problema ? E pelo jeito você após seus " 6 meses de estudo na Internet"  ainda não entendeu as frequências que um No-Break com modulação senoidal trabalha ......

 

Mas se você insistir em usar uma triangular, basta montar uma tabela com os níveis da onda triangular, e usar ela no lugar da senoidal, oras ! Continuará com os mesmíssimos problemas de antes, e ainda vai ter uma forma de onda que seu inversor irá detestar kkkkkkkkkkkkkkk.

 

Ninguém vai te passar um código pronto, meu amigo, aqui é um Fórum para aprendizado, e não para fornecer soluções para outros ganharem dinheiro. 

 

Ter sucesso na vida sem esforço é um sonho, mas a dura realidade é que só com muito estudo e dedicação você consegue algo.

 

Ajudamos muita gente aqui no CDH durante mais de uma década, mas a pessoa tem de fazer a parte dela, sabemos que o ensino hoje em dia é uma porcaria, os recém-formados não sabem nem 30% do que deveriam saber, mas muitos não tem culpa disso, e quando percebemos o esforço e interesse, sempre ajudamos a resolver todos os problemas no projeto deles.

 

Eu estou dando uma ajuda neste tópico mesmo tendo abandonado os Pics faz mais de 10 anos, não sei nada dessas linguagens que você está programando, só sei sobre o Hardware deles, que em termos gerais é quase idêntico aos AVRs que eu uso. A mesma teoria para funcionar num PIC se aplica a um AVR.

 

Nem sobre o hardware você pergunta kkkkkk você só quer o programa pronto, mais nada, não mostra interesse em aprender, portanto está mesmo só perdendo tempo aqui, meu amigo, pois não vamos te passar o código pronto.

 

Ainda não entendí o porquê você fica trocando de microcontrolador.... use a solução pronta que te indiquei, o mundo todo está fazendo isso até em produtos comerciais, ninguém mais quer reconstruir a roda.

 

Use a cabeça, assista os vídeos sobre aquele hardware dedicado que te indiquei, muitos tem toda a eletrônica pronta para você copiar, ok ?

 

Paulo

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

Está misturando as coisas. 

Gerar onda triangular e modular senoide em comparador, é a forma analógica de fazer o PWM modular senoide.

 

No micro controlador se faz por uma tabela de valores da senoide. Depois tem que implementar alguma coisa no código para alterar as larguras do PWM para poder corrigir tensão.

É assim que trabalha aquele placa EGS002

 

Se quer algo mais complexo, capaz até de corrigir distorções da forma de onda causada por cargas não lineares, já começa a ficar complexo em nível muito profissional.

O micro teria que ficar monitorando a forma de onda e quando ficasse diferente de senoidal, teria que enviar a correção no PWM. 

Isso também exige que se use processadores mais potentes do tipo DSP. A coisa vai ficando complexa. pois já envolve aquela coisa de controle PID. 

Quando se usa trafos, você começa a lidar com deslocamento de fase. Fazer correção de distorção com deslocamentos de fase, torna-se um desafio tecnológico.     

 

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

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!