PWM 3

Vivado : Basys3 Servo motor, Analog 제어, 가변 저항, 포토 센서(조도 센서)

Servo Motor이번에는 서보모터를 제어할 예정이다. 서보모터 관련 내용은 아래의 사진의 내용과 같다.서보모터를 동작시킬 탑모듈의 코드는 아래의 내용과 같다. 코드를 살펴보면, 0도, 90도, 180도 그리고 일정 각도마다 움직일 수 있도록 선언을 한 것을 확인할 수 있다. module servo_motor_pwm_top( input clk, reset_p, input [3:0] btn, output motor_pwm, output [3:0] com, output [7:0] seg_7); reg [31:0] clk_div; always @(posedge clk or posedge reset_p)begin if(reset_p)clk_div = 0..

Language/Verilog 2024.08.02

Vivado : RGB LED, DC motor

RGB LED RGB를 나타내는 LED를 제어할 예정이다. LED를 제어할 탑모듈의 코드는 아래와 같다. pwm_100 step 컨트롤러는 이전글을 참고하면 된다.  Vivado : PWM 제어PWM LED의 밝기는 Duty rate에 따라 달라진다. LED 뿐만 아닌 모터의 경우에는 속도도 달라진다. PWM을 제어해 보기 위해 아래와 같은 코드를 구현해 보았다. 우선 Duty를 100단계로 설정하기 위하여 dutjangdong.tistory.com LED를 제어할 pwm의 컨트롤러 코드는 아래의 내용과 같다. 사용자가 임의로 주파수를 조절할 수 있도록 parameter를 먼저 선언하였다.module pwm_Nstep_freq#( parameter sys_clk_freq = 100_000_000, ..

Language/Verilog 2024.08.01

Vivado : PWM 제어

PWM LED의 밝기는 Duty rate에 따라 달라진다. LED 뿐만 아닌 모터의 경우에는 속도도 달라진다. PWM을 제어해 보기 위해 아래와 같은 코드를 구현해 보았다. 우선 Duty를 100단계로 설정하기 위하여 duty에 7비트를 선언하였다. 첫 번째 100 분주기는 1us 단위로 pulse를 준다.그다음 두 번째 100 분주기는 1us 단위의 pulse를 100us 주기로 하고, duty값에 따라 변화하는 파형을 보기 위해 아래와 같이 총 10,000 분주기를 설정하였다. //LED 밝기 제어 컨트롤러module pwm_100step( input clk, reset_p, input [6:0] duty, // 100단계 만큼 output pwm); reg [6:0] c..

Language/Verilog 2024.07.31
728x90