| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /**
- * test_pca9685.c
- * 简单的PCA9685测试程序
- * 编译:gcc -o test_pca9685 test_pca9685.c pca9685.c -lm
- * 运行:sudo ./test_pca9685
- */
- #include <stdio.h>
- #include <unistd.h>
- #include "pca9685.h"
- int main(int argc, char *argv[]) {
- pca9685_t pca;
- const char *i2c_dev = "/dev/i2c-0";
- uint8_t addr = PCA9685_DEFAULT_ADDR;
-
- if (argc > 1) i2c_dev = argv[1];
- if (argc > 2) addr = (uint8_t)strtol(argv[2], NULL, 0);
-
- printf("PCA9685 Test Program\n");
- printf("====================\n");
- printf("Device: %s, Address: 0x%02X\n\n", i2c_dev, addr);
-
- printf("Initializing...\n");
- if (pca9685_init(&pca, i2c_dev, addr) < 0) {
- fprintf(stderr, "Initialization failed!\n");
- return 1;
- }
-
- pca9685_print_status(&pca);
-
- printf("Testing Channel 0...\n");
-
- printf(" Full ON\n");
- pca9685_led_on(&pca, 0);
- sleep(1);
-
- printf(" 50%% brightness\n");
- pca9685_led_brightness(&pca, 0, 128);
- sleep(1);
-
- printf(" 25%% brightness\n");
- pca9685_led_brightness(&pca, 0, 64);
- sleep(1);
-
- printf(" Full OFF\n");
- pca9685_led_off(&pca, 0);
- sleep(1);
-
- printf("Testing all channels...\n");
- for (int i = 0; i < 16; i++) {
- pca9685_led_on(&pca, i);
- usleep(100000);
- }
- sleep(1);
-
- printf("All OFF\n");
- pca9685_all_off(&pca);
-
- printf("\nClosing...\n");
- pca9685_close(&pca);
-
- printf("Test completed.\n");
- return 0;
- }
|