Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Máquina de Vending Pessoal Coin Op

Componentes e suprimentos

FriendlyARM 1/4 Plywood
Corte a madeira compensada nas dimensões especificadas no diagrama
× 4
3/4 "bloqueio de madeira compensada
Corte a madeira compensada em tiras de 3/4 "de largura e contanto que a peça à qual se conecta, consulte o diagrama
× 1
LAFVIN 5 conjuntos 28BYJ-48 ULN2003 Motor de passo 5V + ULN2003 Driver Placa para Arduino
Esses motores serão capazes de empurrar qualquer guloseima que você colocar na máquina
× 1
Acessórios de Pc - Conectores Pro IDC 1,27 mm Pitch Rainbow Color Flat Ribbon Cabo para conectores de 2,54 mm (50P-10FT)
Necessário para tornar a máquina limpa e profissional
× 1
Glarks 635Pcs Dupont Conector Alojamento Macho / Fêmea Pino Conector 40 Pino
Necessário para tornar a máquina limpa e profissional
× 1
Gamelec-Illuminated-Replacement-Microswitch
É necessário ter botões
× 1
Breadboard (genérico)
Placas de solda também funcionam bem
× 1
Kit de protótipo de placa PCB dupla face de 30 unidades
Apenas um ou dois são necessários, mas são de um tamanho perfeito para projetos futuros
× 1
Arduino Mega 2560
O controlador usado foi o Mega 2560
× 1
Módulo de relé Tolako 5v para Arduino ARM
Necessário para evitar que os motores superaquecem
× 1
Visor de módulo LCD serial HiLetgo 2pcs 1602
Sem isso, você não saberá qual botão foi pressionado
× 1
Tiras de luz de LED
Opcional
× 2
Fio de aterramento de cobre descoberto SD sólido de calibre 8 de 50 pés
Isso é o que você usará para fazer as bobinas
× 1
Divisória de prateleira de metal plana
× 1

Ferramentas e máquinas necessárias

Mesa ou serra elétrica
A menos que você tenha um lugar para cortar a madeira
Ferro de soldar (genérico)
Pistola de cola quente (genérica)
Não se esqueça dos bastões de cola também

Aplicativos e serviços online

Arduino IDE

Sobre este projeto





A MÁQUINA DE VENDA PESSOAL


Este projeto é uma construção passo a passo de uma máquina de venda automática pessoal. A máquina de venda automática pode ser abastecida com seus lanches favoritos ou pode ser levada para o escritório para que você possa compartilhar alguns petiscos com sua equipe. Dê uma olhada e deixe-me saber sua opinião.









Construindo a Máquina:

Vou me referir aos diagramas da máquina ao longo deste texto, portanto, consulte os diagramas para esclarecimento / compreensão.

As dimensões da máquina são 21 "L x 18" D x 24 1/4 "H (dimensões da caixa)

2 painéis 18 "D x 23 3/4" H (lados)

2 painéis 21 "W x 18" D (superior e inferior)

2 painéis 21 "W x 24 1/4" H (frente e verso)

A parede divisória tem 18 "D x 23 3/4" H

A prateleira interna é 13 "W x 12" D (vezes 2, prateleira superior e inferior)

As prateleiras têm 8 "entre 13" de largura e 12 "de profundidade

Cada bloco azul no diagrama de painéis é um ponto de montagem de ¾ ”W x ¾” H tão profundo quanto o painel



Monte a caixa conforme mostrado no diagrama e aqui usando o bloqueio de 3/4 "em cada um dos pontos de junção. Observe que as paredes laterais ficam na parte superior da placa inferior e sob a placa superior. As paredes do perímetro devem medir 21" W por 24 1/4 "H.

A parede divisória precisa ser configurada antes da instalação. Meça a partir da parte superior de 16 1/4 "e prenda o bloqueio lá para a prateleira inferior. Meça 8 1/4" a partir da parte superior e prenda o bloqueio para a prateleira superior. Conclua essas etapas na parede esquerda (olhando da frente da máquina) para que você possa prender o bloqueio das prateleiras superior e inferior.

**** Observe que a prateleira inferior precisa ser instalada primeiro, caso contrário, será muito difícil prendê-la ao bloqueio.

Depois de instalar o bloqueio nas prateleiras, use os painéis de 13 "x 12" e instale um em cada conjunto de bloqueio. Isso configurará automaticamente a parede divisória em seu lugar adequado. Em seguida, fixe o bloqueio na parte superior e inferior do lado direito da parede divisória. Em seguida, fixe-o no painel superior e inferior. Isso garantirá completamente a sua estrutura.

Instale o painel traseiro e prepare-se para a instalação do motor. Certifique-se de ter as rodas da bobina impressas para que você possa medi-las e configurar seus furos. Meça as rodas e adicione 1/4 "à altura para que haja espaço para a bobina girar. Você pode ajustar isso conforme necessário, dependendo do seu material. Meça mais de 6 1/2" na prateleira para marcar seu meio. Meça mais de 3 1/4 "para encontrar o centro de cada seção da prateleira. Use a medição de altura que você registrou momentos atrás para encontrar os pontos de perfuração. Faça um orifício que permitirá que você conecte a roda ao motor sem que o eixo da roda esfregue Terminar a montagem dos motores e aparafusar os fixadores.

Configurando o relé do motor:

Conecte os pinos da seguinte maneira. Use o chip L293D (entalhe à esquerda) (no diagrama de circuito) para que você possa controlar o relé. Isso permitirá que você conecte os motores à alimentação.

(Começando da esquerda para a direita)

O pino 1 conecta ao soquete de pino 10 no controlador (no diagrama de circuito)

Pino 2 conectar ao soquete de pino 9 no controlador (no diagrama de circuito)

O pino 3 conecta-se ao lado positivo do relé (com os 3 pinos voltados para você, pino à esquerda) (no diagrama de circuito)

O pino 4 se conecta ao aterramento de 12 V na placa de ensaio (no diagrama de circuito)

Pino 5 não usado (no diagrama de circuito)

O pino 6 conecta-se ao lado do aterramento no relé (com os 3 pinos voltados para você, pino à direita) (no diagrama de circuito)

O pino 7 conecta ao soquete de pino 8 no controlador (no diagrama de circuito)

O pino 8 conecta-se a + 12V na placa de ensaio (no diagrama de circuito)

Conecte o pino do meio no relé a + 12V na placa de ensaio (no diagrama de circuito)

Conecte o pino direito traseiro no relé (com os 3 pinos voltados para você, pino traseiro à direita) ao fio positivo que vai para os drivers do motor (no diagrama de circuito)

Instalação da tela e do botão:Tela - Escolha um local no lado direito da máquina (olhando para a máquina de frente) e marque o orifício que precisa ser feito para a parte de exibição da tela (2,53937 "x 0,5708661) Botão - Escolha um local no lado direito da máquina (olhando para a máquina de frente) e marque os furos que precisam ser feitos para os 4 botões. Os furos devem ter 1,10236 "se usar exatamente o mesmo botão no lista de peças. Eu gosto de usar uma broca menor do que o necessário e lixa para trazê-la para o tamanho necessário.



Lembre-se de que você precisa se certificar de que todas as conexões estão exatamente nos mesmos pontos do diagrama acima. Os LEDs mostrados no diagrama são os LEDs embutidos nos botões de ação. Os diagramas os mostram separados, mas isso é apenas para exibição e para facilitar a leitura do esquema.

Conecte cada motor ao driver fornecido com eles. Em seguida, conecte cada driver ao controlador usando estas etapas:

Configuração do motor:

A alimentação deve ser conectada ao lado de 12 V da placa de ensaio. Esta alimentação vem da fonte ATX que iremos preparar no final. Em seguida, conecte os pinos de 4 "in" do driver ao controlador. Esses pinos são os seguintes

********* NÃO CONECTE OS PRIMEIROS 2 PINOS NESTE BLOCO SÃO PINOS DE 5V - NÃO UTILIZADOS NESTE PROJETO *********

Motor 1:Pinos azuis 22, 24, 26, 28 (no diagrama de circuito)

Motor 2:Pinos amarelos 23, 25, 27, 29 (no diagrama de circuito)

Motor 3:Pinos verdes 30, 32, 34, 36 (no diagrama de circuito)

Motor 4:Pinos vermelhos 31, 33, 35, 37 (no diagrama de circuito)

Conexões de botão:

Conecte um lado do botão de pressão 1 para alimentar 5v, o outro lado a um resistor 220 aterrado junto com o pino analógico A0 (no diagrama de circuito)

Conecte um lado do botão 2 para alimentar 5v e o outro lado a um resistor 220 aterrado junto com o pino analógico A1 (no diagrama de circuito)

Conecte um lado do botão 3 para alimentar 5v, o outro lado a um resistor 220 aterrado junto com o pino analógico A2 (no diagrama de circuito)

Conecte um lado do botão de pressão 4 para alimentar 5v, o outro lado a um resistor 220 aterrado junto com o pino analógico A3 (no diagrama de circuito)

TELA LCD:

Conecte a tela ao lado 5v da placa de ensaio para obter energia e aterramento

Os pinos são os seguintes:

Pino 1:Conecte ao aterramento (no diagrama de circuito)

Pino 2:conecte a energia 5v (no diagrama de circuito)

Pino 3:conecte ao potenciômetro ajustável (na imagem abaixo) Pino inferior esquerdo ao aterramento, inferior direito à alimentação e pino superior ao pino 3 no LCD (no diagrama de circuito, é assim que você define o contraste no LCD para que o texto seja nítido e limpar)

Pino 4:Primeiro pino de sinal para o soquete 2 do pino do controlador (no diagrama de circuito)

Pino 5:conecte ao aterramento (no diagrama de circuito)

Pino 6:segundo pino de sinal para o soquete de pino 3 do controlador (no diagrama de circuito)

Pino 7:NÃO USADO

Pino 8:NÃO USADO

Pino 9:NÃO USADO

Pino 10:NÃO USADO

Pino 11:Terceiro pino de sinal para o soquete 4 do pino do controlador (no diagrama de circuito)

Pino 12:Quarto pino de sinal para o soquete 5 do pino do controlador (no diagrama de circuito)

Pino 13:Quinto pino de sinal para o soquete 6 do pino do controlador (no diagrama de circuito)

Pino 14:Sexto pino de sinal para o soquete 7 do pino do controlador (no diagrama de circuito)

Pino 15:Conecte à alimentação de 5 V (no diagrama de circuito)

Pino 16:Conecte ao aterramento (no diagrama de circuito)

FONTE DE ALIMENTAÇÃO ATX :

Corte apenas os fios necessários para alimentar o dispositivo. Os outros fios são mais seguros no conector de plástico e permitirão que você o use para outros projetos, se necessário.

Pinos ATX:

Corte e descasque (aterramento) o pino 3 do fio preto e o pino 16 do fio verde (sinal). Conecte esses fios a um interruptor para que você possa ligar e desligar a máquina (no diagrama de circuito)

Corte e descasque (aterramento) o pino 7 do fio preto e o pino 10 do fio amarelo (+ 12 V). Conecte esses fios ao lado de 12 V da placa de ensaio designada nas conexões amarela e preta. (No diagrama de circuito)

Corte e descasque (aterramento) o pino 24 do fio preto e (+ 12V) o pino 11 do fio amarelo. Conecte esses fios a um conector compatível para alimentar a placa Arduino (no diagrama de circuito)

Corte e descasque (aterramento) o pino 19 do fio preto e (+ 5V) o pino 21 do fio vermelho. Conecte esses fios ao lado de 5 V da placa de ensaio (no diagrama de circuito)

Divisores e bobinas de prateleira:

Aqui está como configurar suas prateleiras e extrusoras.

Prateleiras - No ponto central, 6 1/2 "da parede lateral esquerda (olhando para a máquina de frente) ou na parede divisória, deve haver uma marca das etapas acima. Use o metal plano e dobre-o no topo de um triângulo. Parece com este "^" Isso servirá como seu divisor do meio. Centralize o triângulo sobre a marca do meio na prateleira. Repita para a segunda prateleira. Use cola quente para prender no lugar. Coloquei slides nas laterais também, mas eles são opcionais.

Bobinas - Para criar as bobinas, primeiro encontre um tubo de 1 1/2 ". Um cano, um tubo de calafetagem, uma lata de tinta spray ou objeto semelhante serve. Um truque é pegar um elástico e envolvê-lo de cima para baixo em todo o comprimento do tubo. Trace uma linha reta para baixo em cada lado da banda em ambos os lados do tubo. Depois de ter linhas paralelas em ambos os lados, use uma fita métrica para marcar os próximos pontos. Escolha um lado, meça em 1 "e marque-o , então meça 2 "a partir dessa marca e continue fazendo espaços de 2" em todo o tubo. Agora, do outro lado do tubo, marque apenas intervalos de 2 ". Comece fazendo a bobina no lado de 1" do tubo e continue fazendo sua bobina de forma que toque cada marca em ambos os lados do tubo. Isso lhe dará uma lacuna de 2 "entre os degraus. Deve ser grande o suficiente para a maioria dos itens. Se você planeja usá-lo para doces, encurte a bobina para 1", apenas reduza a fórmula acima pela metade.

Conexão das bobinas às rodas impressas em 3D. Lembre-se de que existem algumas rodas fabricadas que funcionam. Dê uma olhada na Amazon.

No lado de 1 "da bobina, retraia esta bobina para que faça um círculo. Em seguida, encurte o diâmetro para um pouco menor do que a roda. Quando a bobina estiver pronta, encaixe-a ao redor da borda da roda. Isso deve fazer com que a bobina se comprima a borda da roda e evite que escorregue. Quando estiver satisfeito com o ajuste, dê uma pequena pincelada de cola quente e coloque na roda no final da bobina para segurá-la no lugar.

Luzes de tira de LED:

Conecte o fio positivo ao pino de + 12 V no lado de 12 V da placa de pão. Conecte o cabo de aterramento ao pino de aterramento no lado de 12 V da placa de pão (não está no diagrama)

FAÇA TODAS AS PERGUNTAS QUE VOCÊ TEM, ASSIM POSSO AJUDAR NA ATUALIZAÇÃO PARA TORNAR ESTE PROJETO O MAIS FÁCIL DE SEMPRE.

Código

  • Máquina de venda automática - SEM ALTERAR AS LUZES LED
  • Máquina de venda automática - COM LUZES DE LED QUE MUDAM
  • Aceitador de moedas e cópia completa
Máquina de venda automática - SEM ALTERAR AS LUZES LED Arduino
Tudo que você precisa para completar e entender o projeto
 // Display # include  LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // Stepper Library # include  / / incluindo biblioteca de motor de passo // Configuração do relé # define ENABLE 10 # define DIRA 8 # define DIRB 9 // Define "i" int i; // define a seção de pinos // Stepper Connect 1int stepIN1Pin =22; int stepIN2Pin =24; int stepIN3Pin =26; int stepIN4Pin =28; // Conexão Stepper 2int stepIN1Pin1 =23; int stepIN2Pin1 =25; int stepIN3Pin1 =27; int stepIN4Pin1 =29; // Conexão Stepper 3int stepIN1Pin2 =30; int stepIN2Pin2 =32; int stepIN3Pin2 =34; int stepIN4Pin2 =36; // Conexão Stepper 4int stepIN1Pin3 =31; int stepIN2Pin3 =33; int stepIN3Pin3 =35; int stepIN4Pin3 =37; // definir stepint stepsPerRevolution =2048; // quantidade de passos por revolução // define botões pin portsconst int button1Pin =A0; // Botão 1 Pino analógico A0const int button2Pin =A1; // Pino analógico do botão 2 A1const int button3Pin =A2; // Botão 3 Pino analógico A2const int button4Pin =A3; // Push Button 4 Analog Pin A3 // define cada stepper // 1Stepper myStepper0 (stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); // 2Stepper myStepper1 (stepsPerRevolution, stepIN1Pin1, stepIN3PintePin2, stepIN2) stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin3, stepIN4Pin2); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); void setup (botão de configuração 1) {// PinPinUT; pinMode (button2Pin, INPUT); pinMode (button3Pin, INPUT); pinMode (button4Pin, INPUT); // Atribuir saída de pino pinMode (ENABLE, OUTPUT); pinMode (DIRA, OUTPUT); pinMode (DIRB, OUTPUT); // Atribuir velocidade de passo myStepper0.setSpeed ​​(15); myStepper1.setSpeed ​​(15); myStepper2.setSpeed ​​(15); myStepper3.setSpeed ​​(15); // Inicializa o display LCD lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Selecione seu item"); lcd.setCursor (0, 1); lcd.print ("# 1 # 2 # 3 # 4");} void loop () {// ler a atribuição do botão int button1State, button2State, button3State, button4State; button1State =digitalRead (button1Pin); button2State =digitalRead (button2Pin); button3State =digitalRead (button3Pin); button4State =digitalRead (button4Pin); digitalWrite (ENABLE, HIGH); // Definir estado para (i =0; i <5; i ++); // define a ação quando o botão 1 é pressionado if (((button1State ==LOW) &&! (button2State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (DIRA, HIGH); // ativa o relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper0.step (stepsPerRevolution); // executa o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 1"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (DIRA, LOW); // desativa o relé digitalWrite (DIRB, LOW); } // define a ação quando o botão 2 é pressionado if (((button2State ==LOW) &&! (button1State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (DIRA, HIGH); // ativa o relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper1.step (stepsPerRevolution); // execute o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 2"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (DIRA, LOW); // desativa o relé digitalWrite (DIRB, LOW); } // define a ação quando o botão 3 é pressionado if (((button3State ==LOW) &&! (button4State ==LOW))) // se estamos pressionando o botão 1 OU o botão 2 {digitalWrite (DIRA, HIGH); // ativa o relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper2.step (stepsPerRevolution); // execute o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 3"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (DIRA, LOW); // desativa o relé digitalWrite (DIRB, LOW); } // define a ação quando o botão 4 é pressionado if (((button4State ==LOW) &&! (button3State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (DIRA, HIGH); // ativa o relé digitalWrite (DIRB, LOW); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper3.step (-stepsPerRevolution); // execute o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 4"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (DIRA, LOW); // desativa o relé digitalWrite (DIRB, LOW); }} 
Máquina de venda automática - COM MUDANÇA DE LUZES LED C #
Dê uma olhada no vídeo!
 // Display # include  LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // Stepper Library # include  // incluindo biblioteca de motor de passo // Configuração do relé # define ENABLE 10 # define PinA 8 # define PinB 9 # define REDPIN 38 # define GREENPIN 39 # define BLUEPIN 40 // Define "i" int i; // Define "RGB" int r, g , b; // definindo a seção de pinos // Conexão Stepper 1int stepIN1Pin =22; int stepIN2Pin =24; int stepIN3Pin =26; int stepIN4Pin =28; // Conexão Stepper 2int stepIN1Pin1 =23; int stepIN2Pin1 =25; int stepIN3Pin1 =27; int stepIN4Pin1 =29; // Stepper Connect 3int stepIN1Pin2 =30; int stepIN2Pin2 =32; int stepIN3Pin2 =34; int stepIN4Pin2 =36; // Stepper Connect 4int stepIN1Pin3 =31; int stepIN2Pin3 =33; int stepIN3Pin3 =35; int stepIN4Pin3 =37; // definir stepsint stepsPerRevolution =2048; // quantidade de passos por revolução // define botões pin portsconst int button1Pin =A0; // Botão 1 Pino analógico A0const int button2Pin =A1; // Pino analógico do botão 2 A1const int button3Pin =A2; // Botão 3 Pino analógico A2const int button4Pin =A3; // Push Button 4 Analog Pin A3 // define cada stepper // 1Stepper myStepper0 (stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); // 2Stepper myStepper1 (stepsPerRevolution, stepIN1Pin1, stepIN3PintePin2, stepIN2) stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin3, stepIN4Pin2); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); void setup (botão de configuração 1) {// PinPinUT; pinMode (button2Pin, INPUT); pinMode (button3Pin, INPUT); pinMode (button4Pin, INPUT); // Atribuir saída de pino pinMode (ENABLE, OUTPUT); pinMode (PinA, OUTPUT); pinMode (PinB, OUTPUT); // Configuração dos pinos das tiras de LED pinMode (REDPIN, OUTPUT); pinMode (GREENPIN, OUTPUT); pinMode (BLUEPIN, OUTPUT); // Atribuir velocidade de passo myStepper0.setSpeed ​​(15); myStepper1.setSpeed ​​(15); myStepper2.setSpeed ​​(15); myStepper3.setSpeed ​​(15); // Inicializa o display LCD lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Selecione seu item"); lcd.setCursor (0, 1); lcd.print ("# 1 # 2 # 3 # 4"); analogWrite (REDPIN, 256); analogWrite (GREENPIN, 256); analogWrite (BLUEPIN, 256);} void loop () {// ler a atribuição do botão int button1State, button2State, button3State, button4State; button1State =digitalRead (button1Pin); button2State =digitalRead (button2Pin); button3State =digitalRead (button3Pin); button4State =digitalRead (button4Pin); digitalWrite (ENABLE, HIGH); // Definir estado para (i =0; i <5; i ++); // define a ação quando o botão 1 é pressionado if (((button1State ==LOW) &&! (button2State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (PinA, HIGH); // ativa o relé digitalWrite (PinB, LOW); analogWrite (REDPIN, 256); para (b =256; b> 0; b--); analogWrite (BLUEPIN, b); para (g =256; g> 0; g--); analogWrite (GREENPIN, g); para (g =256; g> 0; g--); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper0.step (stepsPerRevolution); // executa o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 1"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); para (b =0; b <256; b ++); analogWrite (BLUEPIN, b); para (g =0; g <256; g ++); analogWrite (GREENPIN, g); digitalWrite (PinA, LOW); // desativa o relé digitalWrite (PinB, LOW); } // define a ação quando o botão 2 é pressionado if (((button2State ==LOW) &&! (button1State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (PinA, HIGH); // ativa o relé digitalWrite (PinB, LOW); analogWrite (GREENPIN, 256); para (b =256; b> 0; b--); analogWrite (BLUEPIN, b); para (r =256; r> 0; r--); analogWrite (REDPIN, r); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper1.step (stepsPerRevolution); // execute o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 2"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (PinA, LOW); // desativa o relé digitalWrite (PinB, LOW); para (b =0; b <256; b ++); analogWrite (BLUEPIN, b); para (r =0; r <256; r ++); analogWrite (REDPIN, r); } // define a ação quando o botão 3 é pressionado if (((button3State ==LOW) &&! (button4State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (PinA, HIGH); // ativa o relé digitalWrite (PinB, LOW); analogWrite (BLUEPIN, 256); para (r =256; r> 0; r--); analogWrite (REDPIN, r); para (g =256; g> 0; g--); analogWrite (GREENPIN, g); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper2.step (stepsPerRevolution); // execute o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 3"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (PinA, LOW); // desativa o relé digitalWrite (PinB, LOW); para (g =0; g <256; g ++); analogWrite (GREENPIN, g); para (r =0; r <256; r ++); analogWrite (REDPIN, r); } // define a ação quando o botão 4 é pressionado if (((button4State ==LOW) &&! (button3State ==LOW))) // se estivermos pressionando o botão 1 OU o botão 2 {digitalWrite (PinA, HIGH); // ativa o relé digitalWrite (PinB, LOW); analogWrite (REDPIN, 256); analogWrite (GREENPIN, 256); para (b =256; b> 0; b--); analogWrite (BLUEPIN, b); lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Dispensando"); lcd.setCursor (3, 1); lcd.print ("Seu item"); myStepper3.step (-stepsPerRevolution); // execute o motor lcd.clear (); lcd.setCursor (2, 0); lcd.print ("Por favor, leve"); lcd.setCursor (3, 1); lcd.print ("Seu item"); atraso (2500); lcd.setCursor (0, 0); lcd.print ("Estado do botão 4"); lcd.setCursor (2, 1); lcd.print ("1 2 3 ou 4"); digitalWrite (PinA, LOW); // desativa o relé digitalWrite (PinB, LOW); para (b =0; b <256; b ++); analogWrite (BLUEPIN, b); }} 
Aceitador de moedas e copde completo C #
Código completo
 // Display # include  LiquidCrystal lcd (2, 3, 4, 5, 6, 7); // Stepper Library # include  // incluindo biblioteca de motor de passo // Configuração do relé # define ENABLE 10 // # define PinA 8 // # define PinB 9 // Pinos de transitor para LEDs # define REDPIN 38 # define GREENPIN 39 # define BLUEPIN 40 // Define "i" // int i; // Define "RGB" int r, g, b; // Constantesconst int coinpin =21; const int ledpin =13; const int targetcents =100; // Variablesvolatile int cents =0; int credits =0; // definindo a seção de pinos // Stepper Connect 1int stepIN1Pin =22; int stepIN2Pin =24; int stepIN3Pin =26; int stepIN4Pin =28; // Stepper Connect 2int stepIN1Pin1 =23; int stepIN2Pin1 =25; int stepIN3Pin1 =27; int stepIN4Pin1 =29; // Stepper Connect 3int stepIN1Pin2 =30; int stepIN2Pin2 =32; int stepIN3Pin2 =34; int stepIN4Pin2 =36; // Stepper Connect 4int stepIN1Pin3 =31; int stepIN2Pin3 =33; int stepIN3Pin3 =35; int stepIN4Pin3 =37; // definir etapasint etapasPerRevolution 2048; // quantidade de passos por revolução // define botões pin portsconst int button1Pin =A0; // Botão 1 Pino analógico A0const int button2Pin =A1; // Pino analógico do botão 2 A1const int button3Pin =A2; // Botão 3 Pino analógico A2const int button4Pin =A3; // Push Button 4 Analog Pin A3 // define cada stepper // 1Stepper myStepper0 (stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); // 2Stepper myStepper1 (stepsPerRevolution, stepIN1Pin1, stepIN3PintePin2, stepIN2) stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pinign3); // 4Stepper myStepper3 (stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pinign3); , AUMENTAR); // Atribuir o pino do botão de ação input:pinMode (button1Pin, INPUT); pinMode (button2Pin, INPUT); pinMode (button3Pin, INPUT); pinMode (button4Pin, INPUT); // Atribuir saída de pino de relé pinMode (ENABLE, OUTPUT); // pinMode (PinA, OUTPUT); // pinMode (PinB, OUTPUT); // Configuração dos pinos das tiras de LED pinMode (REDPIN, OUTPUT); pinMode (GREENPIN, OUTPUT); pinMode (BLUEPIN, OUTPUT); // Atribuir velocidade de passo myStepper0.setSpeed ​​(15); myStepper1.setSpeed ​​(15); myStepper2.setSpeed ​​(15); myStepper3.setSpeed ​​(15); // Inicializa o display LCD lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Selecione seu item"); lcd.setCursor (0, 1); lcd.print ("# 1 # 2 # 3 # 4"); analogWrite (REDPIN, 256); analogWrite (GREENPIN, 256); analogWrite (BLUEPIN, 256);} // Loopvoid principal () {// Se atingirmos a quantidade de moedas desejada, aumente nossos créditos e zere o contador de centavos se (centavos> =centavos alvo) {créditos =créditos + 1; centavos =centavos - centavos alvo; } // Se não alcançamos nosso objetivo, continue esperando ... else {} // Zona de depuração lcd.begin (16, 2); lcd.clear (); lcd.setCursor (0, 0); lcd.print (centavos); lcd.setCursor (3, 0); lcd.print ("Contagem de moedas"); lcd.setCursor (0, 1); lcd.print (créditos); lcd.setCursor (3, 1); lcd.print ("crédito obtido"); atraso (1000); // Agora, escreva seu próprio código aqui que dispara um evento quando o jogador tem créditos! if (créditos> 0) {// ler a atribuição do botão int button1State, button2State, button3State, button4State; button1State =digitalRead (button1Pin); button2State =digitalRead (button2Pin); button3State =digitalRead(button3Pin); button4State =digitalRead(button4Pin); // digitalWrite(ENABLE, HIGH);// Set state // for (i =0; i <5; i++); // define action when button 1 is pressed if (((button1State ==LOW) &&!(button2State ==LOW)))// if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay// digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); for (b =256; b> 0; b--); analogWrite(BLUEPIN, b); for (g =256; g> 0; g--); analogWrite(GREENPIN, g); for (g =256; g> 0; g--); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper0.step(stepsPerRevolution); //run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); atraso (2500); for (b =0; b <256; b++); analogWrite(BLUEPIN, b); for (g =0; g <256; g++); analogWrite(GREENPIN, g); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); credits =credits - 1; cents =cents - cents; } // define action when button 2 is pressed if (((button2State ==LOW) &&!(button1State ==LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay// digitalWrite(PinB, LOW); analogWrite(GREENPIN, 256); for (b =256; b> 0; b--); analogWrite(BLUEPIN, b); for (r =256; r> 0; r--); analogWrite(REDPIN, r); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); atraso (2500); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); for (b =0; b <256; b++); analogWrite(BLUEPIN, b); for (r =0; r <256; r++); analogWrite(REDPIN, r); credits =credits - 1; cents =cents - cents; } // define action when button 3 is pressed if (((button3State ==LOW) &&!(button4State ==LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay// digitalWrite(PinB, LOW); analogWrite(BLUEPIN, 256); for (r =256; r> 0; r--); analogWrite(REDPIN, r); for (g =256; g> 0; g--); analogWrite(GREENPIN, g); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); atraso (2500); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); for (g =0; g <256; g++); analogWrite(GREENPIN, g); for (r =0; r <256; r++); analogWrite(REDPIN, r); credits =credits - 1; cents =cents - cents; } // define action when button 4 is pressed if (((button4State ==LOW) &&!(button3State ==LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //! engage relay// digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); for (b =256; b> 0; b--); analogWrite(BLUEPIN, b); lcd.clear (); lcd.setCursor (2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor (2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); atraso (2500); digitalWrite(ENABLE, LOW); //disengage relay// digitalWrite(PinB, LOW); for (b =0; b <256; b++); analogWrite(BLUEPIN, b); credits =credits - 1; cents =cents - cents; } }}// Coin Increase loopvoid coinInterrupt() { // Each time a pulse is sent from the coin acceptor, interrupt main loop to add 5 cent and flip on the LED cents =cents + 5; digitalWrite(ledpin, HIGH);}

Esquemas

This is a complete Diagram of the system. It includes, ATX power supply, motors,LCD,LEDs, lights and controller

Processo de manufatura

  1. Máquina EEG
  2. Máquina de Costura
  3. Como funciona uma máquina de venda automática de batatas fritas?
  4. O que é uma máquina de venda automática de leite?
  5. Como uma máquina de venda automática de chips pode fornecer chips quentes e frescos?
  6. O que é uma máquina de venda automática de macarrão?
  7. O que é uma máquina de venda automática de sopa de chá e café?
  8. Tenha uma refeição saudável com a máquina de venda automática de preparação de refeições!
  9. O que esperar de uma máquina de venda automática de refrigerantes?
  10. Máquina de venda automática de picolés:o potencial de negócios