Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* Pleasedontcode.com **********
- Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- - Terms and Conditions:
- You have a non-exclusive, revocable, worldwide, royalty-free license
- for personal and commercial use. Attribution is optional; modifications
- are allowed, but you're responsible for code maintenance. We're not
- liable for any loss or damage. For full terms,
- please visit pleasedontcode.com/termsandconditions.
- - Project: PWM LED
- - Source Code NOT compiled for: Arduino Uno
- - Source Code created on: 2025-10-12 12:16:46
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* 1) Use only core Arduino libraries; no hardware; */
- /* match setup() and loop(). 2) Reference */
- /* PROJECT_188; keep requirements generic until */
- /* components are defined. 3) Tie requirements to */
- /* LIBRARIES and PROTOTYPES; avoid sensor/actuator */
- /* claims. */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- void reportStatus(void);
- #ifndef LED_PIN
- #define LED_PIN 9
- #endif
- #if (LED_PIN == 3) || (LED_PIN == 5) || (LED_PIN == 6) || (LED_PIN == 9) || (LED_PIN == 10) || (LED_PIN == 11)
- #define LED_PWM_AVAILABLE 1
- #else
- #define LED_PWM_AVAILABLE 0
- #endif
- static uint8_t currentBrightness = 0; // internal brightness tracking (0-255 for PWM; 0/1 for non-PWM)
- void setupLEDModule();
- void ledOn();
- void ledOff();
- void ledToggle();
- void ledSetBrightness(uint8_t level);
- void demoBlink();
- void setup(void)
- {
- // Initialize LED module and basic serial for status
- setupLEDModule();
- ledOff();
- Serial.begin(9600);
- Serial.println("PROJECT_188 UNO-only LED API initialized");
- reportStatus();
- }
- void loop(void)
- {
- static unsigned long ledPrevMillis = 0;
- unsigned long now = millis();
- if (now - ledPrevMillis >= 500) {
- ledPrevMillis = now;
- ledToggle();
- }
- }
- // Implementations
- void setupLEDModule() {
- pinMode(LED_PIN, OUTPUT);
- if (LED_PWM_AVAILABLE) {
- analogWrite(LED_PIN, 0);
- currentBrightness = 0;
- } else {
- digitalWrite(LED_PIN, LOW);
- currentBrightness = 0;
- }
- }
- void ledOn() {
- if (LED_PWM_AVAILABLE) {
- currentBrightness = 255;
- analogWrite(LED_PIN, 255);
- } else {
- digitalWrite(LED_PIN, HIGH);
- currentBrightness = 1;
- }
- }
- void ledOff() {
- if (LED_PWM_AVAILABLE) {
- currentBrightness = 0;
- analogWrite(LED_PIN, 0);
- } else {
- digitalWrite(LED_PIN, LOW);
- currentBrightness = 0;
- }
- }
- void ledToggle() {
- if (LED_PWM_AVAILABLE) {
- currentBrightness = (currentBrightness == 0) ? 255 : 0;
- analogWrite(LED_PIN, currentBrightness);
- } else {
- currentBrightness = (currentBrightness == 0) ? 1 : 0;
- digitalWrite(LED_PIN, currentBrightness ? HIGH : LOW);
- }
- }
- void ledSetBrightness(uint8_t level) {
- if (level > 255) level = 255;
- if (LED_PWM_AVAILABLE) {
- currentBrightness = level;
- analogWrite(LED_PIN, level);
- } else {
- if (level > 0) {
- digitalWrite(LED_PIN, HIGH);
- currentBrightness = 1;
- } else {
- digitalWrite(LED_PIN, LOW);
- currentBrightness = 0;
- }
- }
- }
- void demoBlink() {
- // Optional demonstration of the API (blocking sequence)
- ledOn();
- delay(100);
- ledOff();
- delay(100);
- ledToggle();
- delay(100);
- ledToggle();
- }
- void reportStatus(void)
- {
- Serial.println("PROJECT_188 status: OK");
- Serial.print("LED_PIN: ");
- Serial.println(LED_PIN);
- Serial.print("PWM available: ");
- Serial.println(LED_PWM_AVAILABLE ? "yes" : "no");
- Serial.println("API: ledOn(), ledOff(), ledToggle(), ledSetBrightness(uint8_t), setupLEDModule()");
- }
- /* END CODE */
Advertisement
Add Comment
Please, Sign In to add comment