EcoModder.com

EcoModder.com (https://ecomodder.com/forum/)
-   Aerodynamics (https://ecomodder.com/forum/aerodynamics.html)
-   -   Arduino UNO-based Active Grille Block (https://ecomodder.com/forum/showthread.php/arduino-uno-based-active-grille-block-41348.html)

CigaR007 03-19-2024 02:44 PM

Arduino UNO-based Active Grille Block
 
I have been working on integrating an active grille into the fibreglass partial grille block.

I went the COTS (commercial-off-the-shelf) route as to speed up the construction. The grille vane assembly is from a Chevrolet Bolt, or Malibu ? It includes only the plastic frame, no actuator-motor. It is a generic brand bought on amazon.

I basically cut it half, added a servo motor and a pair of micro switches (top and bottom).

Pretty basic functionality for the time being (OPEN/SHUT), but I will be integrating the micro switches and an LCD display. Below is the active grille block in action.

https://www.youtube.com/watch?v=PNOai6rMIbs

Stay tuned for more updates in the coming days.

Cheers.

Piwoslaw 03-21-2024 04:42 AM

Nice!

Now I am interested in how the Arduino will control it.

aerohead 03-21-2024 11:24 AM

' control '
 
Quote:

Originally Posted by Piwoslaw (Post 692290)
Nice!

Now I am interested in how the Arduino will control it.

Do the OEM devices use an analog reference voltage input signal at an A-Gate terminal on the circuit board, from which the digital CP decides if any 'action' is to commence or not, based on internal look-up menus, and if so, the digital signal is processed into an analog voltage signal at the output gate, out to the motor, which, when de-energized, is spooled backwards under spring tension at the shutters? With 'fail-wide-open' safety protection?

CigaR007 03-21-2024 04:04 PM

Quote:

Originally Posted by aerohead
which, when de-energized, is spooled backwards under spring tension at the shutters? With 'fail-wide-open' safety protection?

From what I have seen and read thus far, there does not seem to be fail-safe OPEN mechanism in current grille shutters. I could be wrong though...In their OEM state, all they do is throw a CEL code if there is an issue.

As it stands, there is no spring tension to accommodate a fail-OPEN state, as it would be difficult to use with a servo motor.


Quote:

Originally Posted by Piwoslaw (Post 692290)
Nice!

Now I am interested in how the Arduino will control it.

The arduino control code will evolve over time. For the time being, given my limited coding knowledge, it will be pretty basic.

I managed to integrate a micro switch to detect the shutter position. A 1602 LCD was also integrated to monitor the OPEN/SHUT status.

Things I want to integrate into the code, eventually :
  • Coolant temperature
  • Ambient temperature
  • Rain/Snow sensor

Below is the LCD display and microswitch in action.

https://www.youtube.com/watch?v=wVfX2bUZeNY

Arduino Code :

PHP Code:

#include <Servo.h>
#include <ezButton.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27162);             // I2C address 0x27, 16 column and 2 rows

// constants 
const int BUTTON_PIN 7;                       // Arduino pin connected to button's pin
const int SERVO_PIN 9;                        // Arduino pin connected to servo motor's pin
const int LED_PIN 2;                          // green LED connected to digital pin 2
const int POS_SWITCH 4;
Servo servo;                                    // create servo object to control a servo

// variables 
int angle 0;                                  // the current angle of servo motor
int lastButtonState;                            // the previous state of button
int currentButtonState;                         // the current state of button
int val 0;                                    // variable to store the read value

void setup() {
  
  
Serial.begin(9600);                            // initialize serial
  
pinMode(BUTTON_PININPUT_PULLUP);             // set arduino pin to input pull-up mode
  
pinMode(LED_PINOUTPUT);
  
pinMode(POS_SWITCHINPUT);
  
servo.attach(SERVO_PIN);                       // attaches the servo on pin 9 to the servo object
  
servo.write(angle);
  
lcd.init();                                    // initialize the lcd
  
lcd.backlight();   

}

void loop() {

  
lastButtonState currentButtonState;                       // save the last state
  
currentButtonState digitalRead(BUTTON_PIN);               // read new state

  
if(lastButtonState == HIGH && currentButtonState == LOW) {
    
digitalWrite(LED_PINHIGH);                              // turn the LED on (HIGH is the voltage level)
    
delay(1000);                                              // wait for a second
    
digitalWrite(LED_PINLOW);                               // turn the LED off (LOW is the voltage level)
    
delay(500);                                               // wait for a 0.5 second

    // change angle of servo motor
    
if(angle == 0)
      
angle 90  ;
    else
    if(
angle == 90)
      
angle 0;

  
servo.write(angle);                                         // control servo motor arccoding to the angle
 
}
 
    
delay(1000);                                              // wait for a second
 
 
val digitalRead(POS_SWITCH);                               // read the input pin
  
if(val == HIGH){
    
lcd.clear();                                              // clear display
    
lcd.setCursor(00);                                      // move cursor to   (0, 0)
    
lcd.print(" GRILLE SHUTTER");                             // print message at (0, 0)
    
lcd.setCursor(21);                                      // move cursor to   (2, 1)
    
lcd.print("  [ SHUT ]");                                  // print message at (2, 1)
}
  else {
 
    
lcd.clear();                                              // clear display
    
lcd.setCursor(00);                                      // move cursor to   (0, 0)
    
lcd.print(" GRILLE SHUTTER");                             // print message at (0, 0)
    
lcd.setCursor(31);                                      // move cursor to   (2, 1)
    
lcd.print(" [ OPEN ]");                                   // print message at (2, 1)
                      
}



Cheers !

Piwoslaw 03-22-2024 02:00 AM

Quote:

Originally Posted by CigaR007 (Post 692300)
Things I want to integrate into the code, eventually :
  • Coolant temperature
  • Ambient temperature
  • Rain/Snow sensor

I would add A/C on/off, so you have good air flow over its condenser.

CigaR007 03-25-2024 05:06 PM

Are there any downsides to tapping the sensors wiring ? I am inclined to tap near the PCM as to minimize any potential losses. The sensors are mainly outputting a 0-5Vdc, according to the wiring shematics and Honda service manual.

Piotrsko 03-26-2024 08:59 AM

Input resistance of the arduino may or may not affect the original circuit. You won't know until you try it. I'm not fluent in arduino. Adding a very high impedance switch would have a negligable effect by using a mosfet as an isolator since the sense current would be very small.

CigaR007 03-28-2024 06:47 PM

Work in progress
 
Quote:

Originally Posted by Piotrsko (Post 692391)
Input resistance of the arduino may or may not affect the original circuit.

Turns out that an input can be set to high-impedance; so it should be ok.

Cleaned up a bit of the wiring and made more permanent circuit board to accommodate the servo, LCD display and various switches.

https://i.ibb.co/LSGtfXG/20240328-180957.jpg

The LCD now has a 3D-printed case, which will make it easier to mount on the centre console.

As it stands, it is a fully functional prototype.

https://www.youtube.com/watch?v=Ewl1qabLvx0

CigaR007 03-31-2024 05:50 PM

Making some progress on the arduino code.

Here is a summary of the code :

Button Press: If the button is pressed, the servo motor angle is adjusted based on the current angle (0, 45, 90 degrees).

Position Switch:
Reads the state of the position switch and displays a message on the LCD indicating whether the grille shutter is shut (0), half-open (45), or fully open (90).

Position Error Detection: Reads the state of the position error switch and displays an error message on the LCD if the position is between certain angles and the error switch is triggered

Fully manual for the time being. Sensor integration (coolant and ambient temperatures) will be done after the grille shutter has been installed on the car.

https://www.youtube.com/watch?v=_ANNBYAIONs

CigaR007 04-07-2024 05:08 PM

Cleaned up the wiring and made the permanent control panel.

I am using shielded cat5 cable as the main wiring harness. The wiring from the shutter grille will be custom-made as to make it more waterproof using special connectors.

The connections to the Control panel and board are made using a detachable screw-Terminal to RJ45 connector. Pretty handy for quickly disconnecting the cables and make the necessary changes or troubleshooting, if needed.

https://i.ibb.co/njwZMc0/20240407-161652.jpg

Control Panel using a blank housing plate from my CR-Z.
https://i.ibb.co/ZfGHzWH/20240407-161637.jpg

https://i.ibb.co/xCTZHy4/20240407-161622.jpg

https://i.ibb.co/tX3Rrdy/20240407-161604.jpg

Next step is to work on the shutter grille and install more permanent components such as the waterproof limit switches and Servo motor.

LostinTransit 04-08-2024 01:37 PM

There's some debate and discredit based on my finding with the van's shutter system which I've remove 10 of the 14 slat and got/getting better fuel economy as well as a new top speed of 110 mph.. Up from 80 mph..

CigaR007 04-08-2024 11:39 PM

Quote:

Originally Posted by LostinTransit (Post 692554)
There's some debate and discredit based on my finding with the van's shutter system which I've remove 10 of the 14 slat and got/getting better fuel economy as well as a new top speed of 110 mph.. Up from 80 mph..

There is no debate. Your claims on FE and Top speed improvements are frivolous.

aerohead 04-11-2024 11:57 AM

' debate discredit '
 
Quote:

Originally Posted by LostinTransit (Post 692554)
There's some debate and discredit based on my finding with the van's shutter system which I've remove 10 of the 14 slat and got/getting better fuel economy as well as a new top speed of 110 mph.. Up from 80 mph..

1) increasing top speed, from 80-mph, to 110-mph constitutes a 37.5% increase.
2) in order to increase top speed by this amount requires a drag reduction on the order of 112.5%.
You'd have to be driving on the Moon.

CigaR007 04-21-2024 07:10 PM

Finally finished the assembly of all the parts.

Took longer than expected as I wanted to make the components modular. The modular approach will make it easier to assemble-disassemble and troubleshoot, when needed.

Overall, there are only 3 cables (all CAT6). The arduino UNO sits on the control box that interfaces with the modules and distributes/receives the necessary PWR/GND and signals.


https://i.ibb.co/HPy01JJ/20240421-173802.jpg
https://i.ibb.co/GWYyby2/20240421-181828.jpg
https://i.ibb.co/j8cVyGw/20240421-175316.jpg

https://www.youtube.com/watch?v=rj1Yf969qVA

Next is installing it all in the CR-Z. :turtle:

CigaR007 04-27-2024 06:22 PM

Everything has been installed on the CR-Z.

Any ideas on what variables to monitor ?

I can log multiple sensors with Torque Pro with pre-determined trigger points for charting data.


https://i.ibb.co/pW7xTPy/20240427-173939.jpg
https://i.ibb.co/YjFKQn5/20240427-173906.jpg
https://i.ibb.co/BTmCNHf/20240427-173838.jpg
https://i.ibb.co/5WJVYyb/20240427-173803.jpg
https://i.ibb.co/NKPCkNG/20240427-173716.jpg
https://i.ibb.co/g7RP8y4/20240427-173703.jpg

freebeard 04-27-2024 07:20 PM

First picture I've seen of the car's exterior. Was it originally a PHEV or was it retrofitted? What's the medallion opposite the yellow cable?

aerohead might probably agree that you could fit a bellmouth within that bevel on the opening.

I like the body style. Have you considered a boxed cavity/truncated boat tail?

CigaR007 04-27-2024 08:22 PM

Outlet on the left is for the engine block heater. Yellow cord is for the 12v battery. No PHEV for the CR-Z, unfortunately.

I do have a hitch-mounted truncated boat tail in the works. Waiting for warmer weather to continue the build.

https://i.ibb.co/WcvcjxK/20231004-171856.jpg

Piwoslaw 04-28-2024 02:09 AM

I wonder how much difference you will see between full-open and half-open shutters?
I have a feeling that with the air pressure they may work the same (both for engine cooling and for aero).
Possibly only on the hottest of days?

Piotrsko 04-28-2024 03:56 AM

I would think there is an experimental period involved where max efficiency is based on a series of position for various speeds and could be counter intuitive.
Hot should be more efficient.
Running around Warsaw now, will wave hello as I go by

aerohead 04-29-2024 10:38 AM

' monitoring'
 
Are there any heat-sink-dependent electronics, like an igniter module that were cooled by random air leakage into the engine bay, that might be compromised by 'tightening' the flow to, and around the radiator core?
It would be a bummer if you inadvertently 'cooked' the electronic ignition components.:o

CigaR007 04-29-2024 01:52 PM

Did a 30-mile loop yesterday. Ambient air temperature was around 16 deg C and the coolant was stable at 95 deg C with the grille shutter half-open.

Pretty sure the grille shutter will need to be fully open during the summer months.

CigaR007 08-30-2024 07:12 PM

Been testing it for the past few months and no major issues to report. I made the active grille block permanent. The code will evolve over time in order to fully automate the process. As it stands, it is fully manual, but it's not that bad. I rarely have to adjust the opening. Half-Open is often enough to keep the coolant temp in an optimal range; around 96 deg C.

The big benefit will be in the colder months. I am pretty sure that the active grille will remain closed in the Winter. We shall see.

I am planning to do some coastdown testing in order to try and quantify the drag reduction.

Here are some pics. I still need to install a mesh grille as to shield the shutters from incoming debris.

https://i.ibb.co/rwvGnt6/20240830-180539.jpg

https://i.ibb.co/hgFMwWf/20240830-180550.jpg

https://i.ibb.co/Tc5zZjQ/20240830-180618.jpg

https://i.ibb.co/RYNHDq8/20240830-180744.jpg

CigaR007 10-09-2024 12:54 PM

Currently working on a GUI to control the active grille block.

https://ecomodder.com/forum/showthre...ock-41575.html


All times are GMT -4. The time now is 03:54 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Content Relevant URLs by vBSEO 3.5.2
All content copyright EcoModder.com