LA 1
Percobaan 3
HARDWARE
Microcontroller | ARM Cortex-M3 |
Operating Voltage | 3.3 V |
Input Voltage (recommended) | 5 V |
Input Voltage (limit) | 2 – 3.6 V |
Digital I/O Pins | 32 |
PWM Digital I/O Pins | 15 |
Analog Input Pins | 10 (dengan resolusi 12-bit ADC) |
DC Current per I/O Pin | 25 mA |
DC Current for 3.3V Pin | 150 mA |
Flash Memory | 64 KB |
SRAM | 20 KB |
EEPROM | Emulasi dalam Flash |
Clock Speed | 72 MHz |
Dalam praktiknya proses antarmuka sensor LM35 dapat dikatakan sangat mudah. Pada IC sensor LM35 ini terdapat tiga buah pin kaki yakni Vs, Vout dan pin ground.
Dalam pengoperasiannya pin Vs dihubungkan dengan tegangan sumber sebesar antara 4 – 20 volt sementara pin Ground dihubungkan dengan ground dan pin Vout merupakan keluaran yang akan mengalirkan tegangan yang besarnya akan sesuai dengan suhu yang diterimanya dari sekitar.
SPESIFIKASI :
- Kalibrasi dalam satuan derajat Celsius.
- Linearitas +10 mV/ º C.
- Akurasi 0,5 º C pada suhu ruang.
- Range +2 º C – 150 º C.
- Dioperasikan pada catu daya 4 V – 30 V.
- Arus yang mengalir kurang dari 60 μ A.
3. Kipas DC
4. Motor Driver L298N5. Push Button
Tombol tekan merupakan salah satu komponen elektronik yang memiliki fungsi yang sangat penting. Tombol ini dapat digunakan untuk memutuskan atau menghubungkan aliran listrik pada suatu rangkaian.
Ketika tombol ditekan, aliran listrik akan terputus atau terhubung tergantung dari mekanisme yang digunakan.
Mekanisme pemutusan dan penghubungan aliran ini disebut dengan sistem unlock atau tidak mengunci. Saat tombol tidak ditekan, sirkuit akan berada dalam keadaan normal. Tombol ini dioperasikan secara manual dengan cara ditekan.
Tombol tekan juga sangat penting pada mesin-mesin industri, terutama dalam mematikan dan menyalakan mesin. Tombol ini merupakan tombol utama dalam operasional mesin, yang digunakan pada berbagai jenis mesin industri.
Proses kerja adaptor dimulai dari:
- PLN mendistribusikan aliran arus listrik:
PLN, atau Perusahaan Listrik Negara, mengirim aliran arus listrik melalui sumber tegangan yang ada di rumah atau tempat kerja Kalian. Arus listrik ini berjenis arus bolak-balik atau AC (Alternating Current), dan memiliki tegangan yang cukup tinggi, biasanya 220 Volt di Indonesia. - Arus listrik masuk ke dalam transformator:
Transformator di dalam adaptor berfungsi untuk menurunkan tegangan arus listrik tersebut menjadi lebih rendah dan aman untuk perangkat elektronik Kalian. Misalnya, adaptor laptop biasanya mengubah tegangan menjadi sekitar 19 Volt. - Arus listrik diubah menjadi arus searah (DC) oleh penyearah:
Setelah diturunkan tegangannya, arus listrik masih berbentuk AC. Oleh karena itu, adaptor menggunakan komponen yang disebut penyearah untuk mengubah arus listrik tersebut menjadi arus searah (DC). - Arus DC masuk ke dalam rangkaian switching:
Adaptor modern biasanya adalah adaptor switching, yang memiliki rangkaian switching untuk mengontrol aliran listrik. - Arus DC diubah lagi menjadi AC oleh inverter:
Inverter di dalam adaptor bertugas untuk mengubah arus DC kembali menjadi arus AC, tetapi dengan frekuensi yang jauh lebih tinggi. Frekuensi tinggi ini membuat komponen-komponen di dalam adaptor bisa dibuat lebih kecil. - Arus AC diubah kembali menjadi DC oleh penyearah dan elco:
Penyearah dan elco (atau kapasitor elektrolit) bekerja sama untuk mengubah arus AC kembali menjadi DC, dan juga untuk menyaring gangguan-gangguan di dalam arus listrik. - Arus DC masuk ke dalam IC dan dialirkan ke perangkat elektronik:
IC (Integrated Circuit) di dalam adaptor mengontrol aliran listrik ke perangkat elektronik. Selain itu, IC juga berfungsi sebagai pengatur daya, agar daya yang keluar dari adaptor sesuai dengan kebutuhan perangkat.
c. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
Prinsip Kerja
Pada rangkaian ini, sensor LM35 berfungsi sebagai pendeteksi suhu ruangan yang menghasilkan tegangan analog sesuai perubahan temperatur. Tegangan ini dibaca oleh ADC pada pin PA0 STM32.
Data ADC kemudian dikonversi menjadi nilai suhu dalam derajat Celcius. Jika suhu masih di bawah 27°C, maka kipas akan tetap mati. Jika suhu mencapai 27°C atau lebih, maka kipas mulai menyala.
Semakin tinggi suhu menuju 35°C, duty cycle PWM akan berubah sehingga kecepatan kipas meningkat secara bertahap. Jika suhu mencapai 35°C atau lebih, kipas akan bekerja pada kecepatan maksimum.
Push button digunakan sebagai interrupt untuk mengaktifkan atau menonaktifkan seluruh sistem. Saat tombol ditekan, sistem akan toggle antara kondisi ON dan OFF.
Motor driver L298N digunakan karena STM32 tidak mampu langsung menggerakkan kipas DC yang membutuhkan arus lebih besar.
d. Flowchart dan Listing Program[Kembali]
FLOWCHART#include "main.h" ADC_HandleTypeDef hadc1; TIM_HandleTypeDef htim1; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_ADC1_Init(void); static void MX_TIM1_Init(void); uint32_t adcValue = 0; float voltage = 0; float temperature = 0; uint8_t system_on = 1; int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_ADC1_Init(); MX_TIM1_Init(); HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); while (1) { HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY); adcValue = HAL_ADC_GetValue(&hadc1); voltage = ( adcValue / 4095.0) * 3.3; temperature = ( voltage * 100) ; if(system_on) { if(temperature >= 27.0) { HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET); float duty; if(temperature >= 35.0) { duty = 0.5; } else { duty = 1.0 - ((temperature - 27.0) / 8.0) * 0.5; } __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, duty * 65535); } else { HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET); __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0); } } else { HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET); __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0); } HAL_Delay(200); } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; HAL_RCC_OscConfig(&RCC_OscInitStruct); RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0); PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2; HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit); } static void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig = {0}; hadc1.Instance = ADC1; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.NbrOfConversion = 1; HAL_ADC_Init(&hadc1); sConfig.Channel = ADC_CHANNEL_0; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; HAL_ADC_ConfigChannel(&hadc1, &sConfig); } static void MX_TIM1_Init(void) { TIM_OC_InitTypeDef sConfigOC = {0}; htim1.Instance = TIM1; htim1.Init.Prescaler = 0; htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 65535; HAL_TIM_PWM_Init(&htim1); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 0; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1); HAL_TIM_MspPostInit(&htim1); } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI4_IRQn); } void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == GPIO_PIN_4) { system_on = !system_on; } } void Error_Handler(void) { __disable_irq(); while (1) {} }
f. Analisa [Kembali]
FIle Zip Percobaan 3 [klik disini]
LAPORAN AKHIR [Klik Disini]
Datasheet Sensor: - datasheet Sensor Lm35 [disini]
- datasheet Stm32f103C8 [klik disini]

.jpeg)
.jpeg)
Komentar
Posting Komentar