2024/11 38

MOSFET 란?

MOSFET 트렌지스터는  MOS는  Metal, Oxide, Semiconductor ( 금속, 산화막, 반도체 )이고, FET은 Field Effect Transistor의 줄임말이다.즉, 전계 효과 (Field Effect)를 활용하는 트랜지스터이다.https://www.skcareersjournal.com/2689 반도체의 기초, MOSFET의 모든 것반도체의 기초, MOSFET의 모든 것 안녕하세요, 여러분~! 반도체에 관심이 있다면 한번쯤은 들어봤을 단어, MOSFET 다들 들어보셨나요? MOSFET은 인간이 만든 생산품 중 가장 많이 팔린 제품인데요, 이www.skcareersjournal.com여기에 매우 자세히 설명이 되어있으니 참고바란다. 내가 사용하는 부품은 IOR 회사에서 만든 IR..

기초전자회로 2024.11.30

i2c공부 1)

i2c에 대해 좀 더 공부가 필요하다고 느꼈다.그래서 i2c에 대해 리뷰를 해보려한다. ( 현재 프로젝트에서는 Linux와 Arduino IDE에서 i2c통신을 하고 있으니 해당 함수들에 대해 자세히 파헤치고, 프로젝트에 적용하려 한다. ) 시작해보자Linux에서 사용하는 라이브러리는 i2c-dev를 이용한다.참고는 두곳에서 참고하여 해석해보았다. https://www.kernel.org/doc/Documentation/i2c/dev-interface https://github.com/Leonamin/Sensor-Test/blob/master/Guide/Linux%20I2C%20Guide.md Sensor-Test/Guide/Linux I2C Guide.md at master · Leonamin/Sens..

PWM제어 with Jetson Nano 3)

특정 레지스터에서 1바이트 값을 읽어옵니다. 이번엔 라이브러리에 대해 심층분석에 들어가보자https://github.com/PCY00/Ubicomp_Lab/blob/main/AIoT/U-Neck/MotorControl/Servo/V1/JHPWMPCA9685.cpp Ubicomp_Lab/AIoT/U-Neck/MotorControl/Servo/V1/JHPWMPCA9685.cpp at main · PCY00/Ubicomp_Labstarted 2022.06. Contribute to PCY00/Ubicomp_Lab development by creating an account on GitHub.github.com헤더파일도 같이 있으니 확인하자 일단 먼저 헤더파일부터 확인해보자#include #include #i..

PWM제어 with Jetson Nano 2)

코드에 대해서 심층 분석하기 위해 포스팅을 한다.내 공부를 위해 정리하면서 하는 포스팅이니 틀린부분이 있으면 댓글로 알려주면 감사하다. 먼저 저번 블로그의 메인함수부터 보겠다.https://github.com/PCY00/Ubicomp_Lab/blob/main/AIoT/U-Neck/MotorControl/Servo/V1/servoExample.cpp Ubicomp_Lab/AIoT/U-Neck/MotorControl/Servo/V1/servoExample.cpp at main · PCY00/Ubicomp_Labstarted 2022.06. Contribute to PCY00/Ubicomp_Lab development by creating an account on GitHub.github.com #includ..

롤링포토(?) 만들기

이 포스팅은 아마 27일에 열릴 것 같다. 롤링포토? 같은 걸 만들건데, 선물로 줄 제품이기에 27일 이후에 열릴 예정이다. 일단 아이디어는 인스타 릴스에서 어떤 외국 아주머니(?)가 종이로 만든건데, 만드는 방법은 나와있지 않다.따라서 외부 디자인과 사진이 어떻게 넘겨지는지는 비슷한 방법으로 구현하고, 나머지는 직접 생각해서 만들어 봤다. 먼저 해당 포스팅을 따라하고 싶은 사람이 있다면 도움이 되길 바란다. 준비물3D 프린터기 ( 3D프린터기가 필요하다.. )필라멘트 PLA (색상은 상관 없음)5파이 3T 원형 네오디움 자석 x 16A4용지와 프린터기  준비물부터 진입장벽이 조금 있을수 있다.그래도 나는 완성도 있는 선물을 주고 싶어 3D프린터기를 선택했다. 시작하겠다. 사진 크기 설정 먼저 사진 크기..

RTC사용해보기

Data와 Time을 한번 UART로 보내볼건데, 먼저 시간을 우리가 설정해줄것이다. 먼저 RTC란 현재의 시간을 유지시키는 컴퓨터 시계이다.그래서 현재의 시간은 우리가 정해주고 (그러기 싫으면 NTP) 시간의 흐름을 출력해보자 먼저 외부클럭을 다음과 같이 설정해주자  날짜 시간을 설정해준다.RTC의 동작 주기는 기본적으로 LSE(32.768 kHz) 또는 LSI(약 32 kHz) 클럭을 사용RTC를 정확히 1Hz로 동작시키기 위해, 분주기를 설정하여 클럭을 나눈다.RTC 클럭을 1Hz로 만들기 위한 Prescaler 계산  그리고 다음과 같은 코드를 짜준다.RTC_HandleTypeDef hrtc;UART_HandleTypeDef huart2;/* USER CODE BEGIN PV *//* USER C..

STM32 2024.11.26

I2C로 LCD 제어해보기

STM32407VE 에서 I2C를 먼저 설정해주자 설정은 이렇게만 해주고 코드를 작성하자. 코드는 다음과 같다.라이브러리는 https://github.com/alixahedi/i2c-lcd-stm32 GitHub - alixahedi/i2c-lcd-stm32: i2c lcd STM32 libraryi2c lcd STM32 library. Contribute to alixahedi/i2c-lcd-stm32 development by creating an account on GitHub.github.com이곳에서 제공해준 라이브러리를 사용한다. I2C_HandleTypeDef hi2c1;I2C_LCD_HandleTypeDef lcd1;/* USER CODE END 0 *//** * @brief The a..

STM32 2024.11.25

STM32F407VE - 기초 7) Timer

Timer를 한번 다루어 보겠다.폴링과 인터럽트로 해보겠다. 폴링은 인터럽트만 체크하지 않으면 됨을 이전 포스팅에서 계속 다루었다. 이렇게 하고, LED하나를 달아 점등하게 했다. 그리고 이것을 오실로스코프를 찍어본 결과이다.코드는 다음과 같다. HAL_TIM_Base_Start(&htim6); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(__HAL_TIM_GET_FLAG(&htim6, TIM_FLAG_UPDATE)) { __HAL_TIM_CLEAR_IT(&htim6, TIM_IT_UPDATE); HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); } /* ..

STM32 2024.11.25

MCU Internal 온도 측정하기

먼저 데이터 시트에서 온도를 어떻게 계산할 수 있는지 확인하자  Temperature (in C) = {(V25 - VSENSE) / Avg_Slope} + 25 이고VSENSE = ADC 채널의 값 * 3000 / 4096V25는 0.76 = mV로 바꾸면 760이다.Avg_Slope은 mV이니까 그대로 2.5따라서 {( VSENSE- 760 ) / 2.5 } + 25 이 된다.나중에 수식에 넣어주면 된다 다음을 따라서 ADC를 설정해주자  다음으로 코드를 짜주자 (폴링방식으로 진행함) uint32_t adc_data;float Temp;void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){ adc_data = HAL_ADC_GetValue(&hadc1); ..

STM32 2024.11.24

STM32F407VE - 기초 6) ADC-2

이전 포스팅이어서 인터럽트를 사용해 ADC를 사용해보겠다.핀 설정을 하나만 하겠다.  이렇게 인터럽트를 설정해주자그리고 다음 코드를 넣자uint32_t adc_val[3];float volt[3];void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){ adc_val[0] = HAL_ADC_GetValue(&hadc1);} HAL_ADC_Start_IT(&hadc1); /* USER CODE BEGIN WHILE */ while (1) { volt[0] = adc_val[0]*3.3/4096; printf("adc_val[0]=%ld, Volt[0]=%f\r\n", adc_val[0],volt[0]); HAL_Delay(100); 그..

STM32 2024.11.24