Animation : analyse d'un colorant de bonbon Schtroumpf® - Physique-Chimie

Animation : analyse d’un colorant de bonbon Schtroumpf®

, par Animatrice du Site Disciplinaire

Objectif

L’objectif de cette activité est de déterminer le nombre de bonbons Schtroumpf® qu’une personne peut manger sans dépasser la DJA en colorant.

Documents : DJA de quelques colorants

Les confiseurs utilisent des colorants alimentaires pour faire ressembler leurs produits aux espèces naturelles ou pour leur donner un aspect qui stimule l’imagination et l’appétit. Les bonbons Schtroumpf® en sont un exemple.
Comme toute espèce chimique, qu’elle soit naturelle ou artificielle, il existe une dose maximale à ne pas dépasser.
L’union européenne a fixé pour les colorants alimentaires des DJA* dont un extrait est indiqué dans le document ci-dessous.

ColorantBleu Patenté E131Indigotine E132Bleu Brillant E133
Formule
Masse molaire(g/mol)560420747
DJA (mg/kg)2,55,010,0

*DJA : dose journalière admissible par kg de masse corporelle

Questions

ANA Question 1 : Quel est le colorant utilisé ?

En utilisant la simulation, superposez les spectres des différents colorants et de la solution obtenue par dissolution du bonbon schtroumpf® Conclure quant à la nature du colorant utilisé.

Déterminez la longueur d’onde pour laquelle on obtient le maximum d’absorption.

REA Question 2 : Quelle est la concentration de la solution de bonbon Schtroumpf ® ?

En utilisant la simulation, tracez la loi de Beer-Lambert pour le colorant trouvé à la question 1 en se plaçant à λmax

Pour cela choisissez les valeurs extrèmes de l’échelle de teinte à réaliser et tracez A=f(C).

Déterminez l’absorbance de la solution préparée en dissolvant un bonbon Schtroumpf® dans 100mL d’eau. (Echantillon)

Déterminez graphiquement la concentration en colorant de cette solution. Pensez à modifier les échelles du graphique avec les curseurs pour augmenter la précision.

VAL Question 3 : Combien de bonbons Schtroumpf® une personne de 50kg peut-elle manger ?

En déduire la quantité de matière en colorant contenue dans un bonbon.

En déduire la masse de colorant dans un bonbon.

En déduire le nombre de bonbons que l’on peut manger par kg d’être humain.

Combien de bonbons une personne de 50 kg peut-elle donc manger sans risque quotidiennement ?

Conclure : Y a-t-il un risque de dépasser la DJA en mangeant des bonbons Schtroumpf® ?

Simulation

Courbe à tracer

A=f(λ)
A=f(C)
Echantillon

λ1=400 nm

λ2=780 nm

Amaxi=3

Solution

C1=1 µmol/L
C2=100 µmol/L

Les spectres ont été obtenus avec SpectrOvio et le logiciel VisualSpectra puis transformés en fichiers csv

//initialisation de la zone de dessin du spectro
var spectro = document.getElementById("spectro") ;
var drawContext2=spectro.getContext(’2d’) ;
//initialisation du graphique
var canvas = document.getElementById("graphe") ;
//canvas.style.cursor="crosshair" ;
var drawContext=canvas.getContext(’2d’) ;
var largeurcourbe = spectro.width ;
var lambdamini=(document.getElementById("spectre1").value)*1.00 ;
var lambdamaxi=(document.getElementById("spectre2").value)*1.00 ;
var Amaxi=(document.getElementById("Amaxi").value)*1.00 ;
var colSolution="blue" ;
var absorbance=0.00 ;
var mesure = new Array() ;
var tableau = new Array() ;
var Cmin=(document.getElementById("C1").value)*1.00 ;
var Cmax=(document.getElementById("C2").value)*1.00 ;
var couleurSolution=new Array ;
var coloris=["blue","red","green","purple","maroon","fuschia","navy","olive","black"] ;
var couleurs=-1 ;
var numero=0 ;
var decalement=600 ;
var compteur=0 ;
var maSolution=0 ;
var selec=document.getElementById("maselect") ;
var largeur=450-130 ;
var hauteur=450-120 ;

function requeteAjax(fichier)
//requete ajax
compteur=0 ;
try
clearTimeout(anim) ;document.getElementById("marche").value="Acquérir" ;

catch (e) {} ;
couleurs++ ;
couleurs=couleurs%9 ;
maSolution=selec.selectedIndex ;
efface(drawContext2) ;
dessine_spectre(decalement-lambdamini,couleurSolution[maSolution],absorbance,50) ;
var req = new XMLHttpRequest() ;
req.open(’GET’, fichier, true) ;
req.onreadystatechange = function ()
if (req.readyState == 4)
if(req.status == 200)
decoupe(req.responseText) ;
else
console.log("Erreur pendant le chargement de la page.\n") ;

 ;
req.send(null) ;
 ;

function decoupe(valeur)
//découpage
tableau=[] ;mesure=[] ;
var carac="" ;
for (i=0 ;i3)AActu=3 ;
stroke() ;
closePath() ;
dessine_spectre(decalement-lambdamini,couleurSolution[maSolution],AActu,CActu) ;
//on a atteint les limites de l’écran en X ; on arrête après avoir créé la fonction correspondante.
if (compteur>largeur)
clearTimeout(anim) ;compteur=0 ;document.getElementById("marche").value="Acquérir" ;
var fonction=Abase/5+"*x" ;
maCourbe.fonctionPlus(fonction,selec.options[selec.selectedIndex].text,coloris[couleurs]) ;maCourbe.refresh() ;
//maCourbe.coordVisible=true ;
libereCommande() ;

else
anim=setTimeout(anime,100) ;
 ;

 ;
if (document.getElementById("courbe3").checked)
efface(drawContext2) ;
var Abase=eval(tableau[numero][1]) ;
dessine_spectre(decalement-lambdamini,couleurSolution[maSolution],eval(Abase)/10,CActu) ;
document.getElementById("marche").value="Acquérir" ;
libereCommande() ;
//maCourbe.coordVisible=true ;

function WavelengthToRGB(Wavelength)
// fonction qui donne rgb à partir de sa longueur d’onde
Gamma = 0.80 ;
IntensityMax = 255 ;

function Adjust(Color, Factor)
if (Color == 0)
return 0

else
return Math.round(IntensityMax * Math.pow(Color * Factor, Gamma))
 ;
 ;

if ( Wavelength>=380 && Wavelength <= 440)
R = -(Wavelength - 440) / (440 - 380) ;
G = 0 ;
B = 1 ;

else if ( Wavelength>=440 && Wavelength <= 490)
R = 0 ;
G = (Wavelength - 440) / (490 - 440) ;
B = 1 ;

else if ( Wavelength>=490 && Wavelength <= 510)
R = 0 ;
G = 1 ;
B = -(Wavelength - 510) / (510 - 490) ;

else if ( Wavelength>=510 && Wavelength <= 580)
R = (Wavelength - 510) / (580 - 510) ;
G = 1 ;
B = 0 ;

else if ( Wavelength>=580 && Wavelength <= 645)
R = 1 ;
G = -(Wavelength - 645) / (645 - 580) ;
B = 0 ;

else if ( Wavelength>=645 && Wavelength <= 780)
R = 1 ;
G = 0 ;
B = 0 ;

else
R = 0 ;
G = 0 ;
B = 0 ;






if ( Wavelength>=380 && Wavelength <= 420)
Factor = 0.3 + 0.7 * (Wavelength - 380) / (420 - 380) ;

else if ( Wavelength>=420 && Wavelength <= 700)
Factor = 1 ;

else if ( Wavelength>=701 && Wavelength <= 780)
Factor = 0.3 + 0.7 * (780 - Wavelength) / (780 - 700) ;

else
Factor = 0 ;


R = Adjust(R, Factor)
G = Adjust(G, Factor)
B = Adjust(B, Factor)

return "rgb("+R+","+G+","+B+")" ;

function efface(ctx)
//efface le canvas2 et dessine le ligne de surface d’eau
ctx.beginPath() ;
ctx.clearRect(0,0,largeurcourbe,largeurcourbe) ;
ctx.closePath() ;

function dessine_spectre(decalage,solution,valeur,Cconc)

with (drawContext2)
//dessine spectre
for (i=0 ;i1="+lambdamini+" nm" ;
document.getElementById("lspectre2").innerHTML="λ1="+lambdamaxi+" nm" ;
document.getElementById("lC1").innerHTML="C1="+Cmin+" µmol/L" ;
document.getElementById("lC2").innerHTML="C2="+Cmax+" µmol/L" ;
Amaxi=(document.getElementById("Amaxi").value)*1.00 ;
document.getElementById("lAmaxi").innerHTML="Amaxi="+Amaxi ;
switch(document.getElementById("courbe1").checked)
case true : maCourbe.repere.paramX=[lambdamini,lambdamaxi,10,5,0,true,0,false,"l(nm)"] ;
dessine_spectre(decalement-lambdamini,couleurSolution[maSolution],absorbance,50) ;
break ;
case false : maCourbe.repere.paramX=[Cmin,Cmax,10,5,0,true,1,false,"µmol/L"] ;
dessine_spectre(decalement-lambdamini,couleurSolution[maSolution],absorbance,14) ;

break ;

maCourbe.repere.paramY=[0,Amaxi,10,2,0,true,2,false,"A"] ;
maCourbe.refresh() ;

for (var l=0 ;l

Article proposé par : Jean-Luc Leloire

Portfolio