锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

FPGA入门实验-寻迹小车的实现

时间:2023-12-03 04:07:02 b00正反转速传感器

任务目标

寻找汽车的实现。记得调整模块的可调电阻参数。

实现代码

电机模块代码motor.v:

module MOTOR(     input sysclk,     input rst_n,  input ENA,  input ENB,  input [1:0] ATURN,  input [1:0] BTURN,  output reg [1:0] EN,  output reg [1:0] AIN,  output reg [1:0] BIN );  always@(posedge sysclk) begin     if(!rst_n) begin         EN <= 2'b00;         AIN <= 2'b00;         BIN <= 2'b00;         end     else         begin         EN <= {ENB ,ENA};         AIN <= ATURN;         BIN <= BTURN;         end  end  endmodule

顶层文件逻辑TOP.v:

`timescale 1ns / 1ps  module TOP(     input               sysclk,     input               rst_n,     input       [1:0] infraded, // 1:左侧红外传感器,0:右侧红外传感器     output  [1:0] AIN, // 左侧车轮控制     output      [1:0]   BIN  // 右轮控制     );  reg     [1:0]   ATURN,BTURN; wire [1:0]   EN;  MOTOR motor(     .sysclk(sysclk),     .rst_n(rst_n),  .ENA(1'b1),  .ENB(1'b1),  .ATURN(ATURN),  .BTURN(BTURN),  .EN(EN),  .AIN(AIN),  .BIN(BIN) );  always@(posedge sysclk) begin     if(infraded == 2'b00)   begin         ATURN <= 2'b01;         BTURN <= 2'b01;     end     else if(infraded == 2'b01) begin         ATURN <= 2'b01;         BTURN <= 2'b10;     end     else if(infraded == 2'b10) begin         ATURN <= 2'b10;         BTURN <= 2'b01;     end     else begin         ATURN <= 2'b00;         BTURN <= 2'b00;     end          end   endmodule 

结语

车辆组装取决于读者自己。代码逻辑相似。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章