ásico, sendo que são 6 cabos de saidas.
Os cabos são numerados de 1 a 6.
Estão fechados os ns 4, 5, 6 juntos, em Y, como se fosse no alternador.
Os ns, 1, 2, 3, estão disponíveis para entrar tensão. Eles não passam por nenhuma fonte retificadora como no alternador. Saem direto das bobinas do estator.
Então, temos 6 cabos , sendo que três estão fechados e três livres, que são as 3 fases.
O estator tem 36 ranhuras (Slot) no pacote do estator.
Na bobinagem, para cada fase, conto 18 elementos de bobinas sem emendas. Ao todo 36 bobinas.
Tentei colocar um controle de moto elétrica, mas aquece, pelo fato de ser pouco potente.
Obrigado..!!…
t não contrei um padrão para ligação no arduino com este número de pinos, então seguindo a dica de um membro daqui fui número a número testando para ver qual o padrão.
Coloco aqui pra evitar este retrabalho de quem precisar, segue abaixo o padrão:
Nº - PINOS TECLADO1 - 1 + 42 - 2 + 43 - 3 + 44 - 1 + 55 - 2 + 5 6 - 3 + 57 - 1 + 68 - 2 + 69 - 3 + 6* - 1 + 70 - 2 + 7# - 3 + 7
pino 4 - row 0
pino 5 - row 1
pino 6 - row 3
pino 7 - row 4
pino 1 - col 1
pino 2 - col 2
pino 3 - col 3…
;
6 SE ENVIO FOR 'd' FAÇA;
7 ATIVA O SENSOR;
8 SENSOR EM LOW;
9 AGUARDANDO MOVIMENTO
10 SENSOR EM HIGH
11 DETECTOU MOVIMENTO FAÇA;
12 LIGA O RELE;
13 RELE LIGADO POR ALGUNS MINUTOS;
14 DESLIGA O RELE;
15 SENSOR EM LOW;
16 SE ENVIO 'd' FAÇA;
17 DESLIGA O SENSOR;
18 NÃO LIGA RELE;
19 FIM
????
Obrigado.…
Adicionado por Cleiton Silva ao 21:42 em 23 janeiro 2017
só o microcontrolador e a estrutura standalone, fora isso, se usar o arduino mesmo, tem que dizer se estamos upando um arduino pro mini 3.3v 8mhz ou pra um arduino Uno 5v 16mhz.
Adorei, sua dica de leitura da biblioteca wiring.c, tem muita coisa lá realmente.
Parece que ele faz a correção de acordo com o clock do cristal, acho que a resposta tá nessa parte aqui:
/* Delay for the given number of microseconds. Assumes a 1, 8, 12, 16, 20 or 24 MHz clock. */ void delayMicroseconds(unsigned int us) { // call = 4 cycles + 2 to 4 cycles to init us(2 for constant delay, 4 for variable) // calling avrlib's delay_us() function with low values (e.g. 1 or // 2 microseconds) gives delays longer than desired. //delay_us(us); #if F_CPU >= 24000000L // for the 24 MHz clock for the aventurous ones, trying to overclock // zero delay fix if (!us) return; // = 3 cycles, (4 when true) // the following loop takes a 1/6 of a microsecond (4 cycles) // per iteration, so execute it six times for each microsecond of // delay requested. us *= 6; // x6 us, = 7 cycles // account for the time taken in the preceeding commands. // we just burned 22 (24) cycles above, remove 5, (5*4=20) // us is at least 6 so we can substract 5 us -= 5; //=2 cycles #elif F_CPU >= 20000000L // for the 20 MHz clock on rare Arduino boards // for a one-microsecond delay, simply return. the overhead // of the function call takes 18 (20) cycles, which is 1us __asm__ __volatile__ ( "nop" "\n\t" "nop" "\n\t" "nop" "\n\t" "nop"); //just waiting 4 cycles if (us <= 1) return; // = 3 cycles, (4 when true) // the following loop takes a 1/5 of a microsecond (4 cycles) // per iteration, so execute it five times for each microsecond of // delay requested. us = (us << 2) + us; // x5 us, = 7 cycles // account for the time taken in the preceeding commands. // we just burned 26 (28) cycles above, remove 7, (7*4=28) // us is at least 10 so we can substract 7 us -= 7; // 2 cycles #elif F_CPU >= 16000000L // for the 16 MHz clock on most Arduino boards // for a one-microsecond delay, simply return. the overhead // of the function call takes 14 (16) cycles, which is 1us if (us <= 1) return; // = 3 cycles, (4 when true) // the following loop takes 1/4 of a microsecond (4 cycles) // per iteration, so execute it four times for each microsecond of // delay requested. us <<= 2; // x4 us, = 4 cycles // account for the time taken in the preceeding commands. // we just burned 19 (21) cycles above, remove 5, (5*4=20) // us is at least 8 so we can substract 5 us -= 5; // = 2 cycles, #elif F_CPU >= 12000000L // for the 12 MHz clock if somebody is working with USB // for a 1 microsecond delay, simply return. the overhead // of the function call takes 14 (16) cycles, which is 1.5us if (us <= 1) return; // = 3 cycles, (4 when true) // the following loop takes 1/3 of a microsecond (4 cycles) // per iteration, so execute it three times for each microsecond of // delay requested. us = (us << 1) + us; // x3 us, = 5 cycles // account for the time taken in the preceeding commands. // we just burned 20 (22) cycles above, remove 5, (5*4=20) // us is at least 6 so we can substract 5 us -= 5; //2 cycles #elif F_CPU >= 8000000L // for the 8 MHz internal clock // for a 1 and 2 microsecond delay, simply return. the overhead // of the function call takes 14 (16) cycles, which is 2us if (us <= 2) return; // = 3 cycles, (4 when true) // the following loop takes 1/2 of a microsecond (4 cycles) // per iteration, so execute it twice for each microsecond of // delay requested. us <<= 1; //x2 us, = 2 cycles // account for the time taken in the preceeding commands. // we just burned 17 (19) cycles above, remove 4, (4*4=16) // us is at least 6 so we can substract 4 us -= 4; // = 2 cycles
…
Adicionado por Weider Duarte ao 14:53 em 13 outubro 2016
o sei programar no matlab muito ainda, então estou com alguns erros no programa que nao consigo resolver. Se alguem puder ajudar, to enviando o script :
clc;close all;clear all;
% Matriz M de parametrosM = [0.1 0.1 0.05 % Raio direito; Raio esquerda; distancia entre as duas rodas 0 1 0 % 0; deltat; phio 0 0 0]; % wo; xo; yo
% entrar com o perfil da aceleracaoAd = [-5 5; 0 5; 2.5 5; 0 5; -2.5 5; 0 5; 5 5];Ae = [0 35]; Amax = 6;
% auto - preenchimento do vetor Aceleracaoe;[line,cole] = size(Ae);soma1 = 0;for i=1:1:line soma1 = Ae(i,2)+soma1;ende=1;
for i=1:1:line for j=1:1:Ae(i,2) Aceleracaoe(1)=0; Aceleracaoe(e+1) = Ae(i,1); e = e+1; endend
% auto - preenchimento do vetor Aceleracaod;[lind,cold] = size(Ad);soma2 = 0;for i=1:1:lind soma2 = Ad(i,2)+soma2;endk=1;for i=1:1:lind for j=1:1:Ad(i,2) Aceleracaod(1)=0; Aceleracaod(k+1) = Ad(i,1); k = k+1; endendz=0;
%determinando a aceleracao maxima ; for j=1:1:line if(Ae(j,1)>=Amax) h = msgbox('ATENCAO: ACELERACAO MAXIMA ATINGIDA', 'ERROR 1'); % sms de erro z=1; endendfor j=1:1:lind if(Ad(j,1)>=Amax) h = msgbox('ATENCAO: ACELERACAO MAXIMA ATINGIDA', 'ERROR 1'); % sms de erro z=1; endend
%Garantindo tempo igual ; if(soma1~=soma2) h = msgbox('ANTENCAO: O TEMPO TOTAL DEVE SER IGUAL PARA AS DUAS RODAS', 'ERROR 2'); % sms de erroz=1; end
%configuracao do graficoif z==0 figure; xlabel ('X'); ylabel ('Y'); title ('TRAJETORIA DO ROBO DIFERENCIAL'); hold onend
%contawod=0;woe=0;
for i=1:1:soma1+1
%velocidade angular wd(i) = wod + (Aceleracaod(i)*M(2,2)); we(i) = woe + (Aceleracaoe(i)*M(2,2));
%velocidade linear vd(i) = (wd(i)*M(1,1)); ve(i) = (we(i)*M(1,2)); v(i) = ((ve(i) + vd(i))/2);
%velocidade angular w(i) = ((vd(i) - ve(i))/M(1,3)); %posicao phi(i) = (M(2,3) + w(i)*M(2,2))*pi/180; x(i) = M(3,2) + v(i)*cos(phi(i))*M(2,2); y(i) = M(3,3) + v(i)*sin(phi(i))*M(2,2); if z==0 plot(x,y,'');endM(3,2) = x(i);M(3,3) = y(i);M(2,3) = phi(i);wod = wd(i);woe = we(i);endfigure;plot(vd);figure;plot(ve);…
Adicionado por vinicius ao 16:24 em 7 fevereiro 2014
/
Bom eu estudo e moro em Uberlândia, e se tudo der certo vou para São Paulo segunda-feira com o pessoal da Facu... Quem vai também? Gostaria de conhecer alguém que faz parte do LdG e freqüenta sempre o espaço. Queria conversar e trocar idéias.
Alguém sabe se vai ter um pessoal representando algo lá?
Att. Camilo de Lellis
www.labinobrasil.com…